最近有人問到定位問題,基本上我用以下三個方法可解決,但不同的項目使用方法不一樣。以下為自己所用的簡單記錄說明
1、Xpath
經常使用且最能解決問題的定位
driver.findElement(By.xpath("//button[@seleniumpath='shareBtn']")).click();
driver.findElement(By.xpath("//div[@seleniumpath='shareBtn']")).click();
很多人喜歡用這樣的定位方法,不推薦使用,如:
driver.findElement(By.xpath("//div[@seleniumpath='shareBtn']/div/[3]div[2]/table/tr/td/div[3]/button[2]")).click();
定位表達式越簡單越好,太復雜一旦js改變或者html改變則整個項目基本就會重寫。因此需要如下定位可輔助實現增加效率
2、Contains
中文和英文項目都使用的定位方法。--英文為例(如圖)
driver.findElement(By.xpath("//div[contains(text(),'modifyFilterTest002')]")).click();
3、CssSlector
使用框架:react
在此框架上我們使用CssSlector來定位非常方便,但如果框架改變我們則需要根據框架來改變我們的定位方式
driver.findElement(By.cssSelector("#loginForm > div.form-group.username.control-group > div > input")).sendKeys(user.getEmailAddress());
#loginForm > div.form-group.username.control-group > div > input --使用操作方法獲取
user.getEmailAddress()--bean中初始化get方法,獲取來源為test case的email地址
操作方法:
更多交流關注自動化分享群:537188253