selenium元素定位Xpath,Contains,CssSelector


最近有人問到定位問題,基本上我用以下三個方法可解決,但不同的項目使用方法不一樣。以下為自己所用的簡單記錄說明

 

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

 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM