最近有人问到定位问题,基本上我用以下三个方法可解决,但不同的项目使用方法不一样。以下为自己所用的简单记录说明
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
☀️☀️☀️☀️☀️☀️ 我心,我向,我路,我步
☀️☀️☀️☀️☀️☀️
用心分享,做一个测试路上不断成长的人
QQ总结和分享群:537188253
☀️☀️☀️☀️☀️☀️
随笔总结不当之处欢迎评论区留言交流,博主24小时在线回复
博客地址:https://www.cnblogs.com/yoyoblogs/
☀️☀️☀️☀️☀️☀️