WebDriver常见八大元素定位解析
来源:互联网 发布:php数组做分页 编辑:程序博客网 时间:2024/06/05 03:26
参考文章:
参考指南
八大元素:
1.By.name
webdriver.findElement(By.name("password")).sendKeys("123456");
2.By.id
//点亮自动登录按钮 webdriver.findElement(By.id("auto-signin")).click();
3.By.className
//找到登录按钮并点击webdriver.findElement(By.className("btn-red")).click();
4.By.tagName()
tagName指的就是标签名,比如:li,input,i,a,img,span但是出现一个问题就是一个页面的tagName通常不止一个,比如上面所示的input 类型就有两个,所以我们通过这种方式需要进行适当的筛选:
eg:
public class SearchElementsByTagName{ public static void main(String[] args){ WebDriver driver = new FirefoxDriver(); driver.get("http://www.forexample.com"); List<WebElement> allInputs = driver.findElements(By.tagName("input")); //只打印所有文本框的值 for(WebElement e: allInputs){ if (e.getAttribute(“type”).equals(“text”)){ System.out.println(e.getText().toString()); //打印出每个文本框里的值 } } }}
4.By.className()
注意:使用className来进行元素定位时,有时会碰到一个元素指定了若干个class属性值的“复合样式”的情况,如下面这个button:<button id="J_sidebar_login" class="btn btn_big btn_submit" type="submit">登录</button>。这个button元素指定了三个不同的css伪类名作为它的样式属性值,此时就必须结合后面要介绍的cssSelector方法来定位了,稍后会有详细例子。
5.By.linkText()
这个方法比较直接,即通过超文本链接上的文字信息来定位元素,这种方式一般专门用于定位页面上的超文本链接。通常一个超文本链接会长成这个样子:1 <a href="/intl/en/about.html">About Google</a>我们定位这个元素时,可以使用下面的代码进行操作:
public class SearchElementsByLinkText{ public static void main(String[] args){ WebDriver driver = new FirefoxDriver(); driver.get("http://www.forexample.com"); WebElement aboutLink = driver.findElement(By.linkText("About Google")); aboutLink.click(); }}
6.By.partialLinkText()
这个方法是上一个方法的扩展。当你不能准确知道超链接上的文本信息或者只想通过一些关键字进行匹配时,可以使用这个方法来通过部分链接文字进行匹配。代码如下:
public class SearchElementsByPartialLinkText{ public static void main(String[] args){ WebDriver driver = new FirefoxDriver(); driver.get("http://www.forexample.com"); WebElement aboutLink = driver.findElement(By.partialLinkText("About")); aboutLink.click(); }}
注意:使用这种方法进行定位时,可能会引起的问题是,当你的页面中不止一个超链接包含About时,findElement方法只会返回第一个查找到的元素,而不会返回所有符合条件的元素。如果你要想获得所有符合条件的元素,还是只能使用findElements方法。
总结:
1. 当页面元素有id属性时,最好尽量用id来定位。但由于现实项目中很多程序员其实写的代码并不规范,会缺少很多标准属性,这时就只有选择其他定位方法。2. xpath很强悍,但定位性能不是很好,所以还是尽量少用。如果确实少数元素不好定位,可以选择xpath或cssSelector。3. 当要定位一组元素相同元素时,可以考虑用tagName或name。4. 当有链接需要定位时,可以考虑linkText或partialLinkText方式。
阅读全文
0 0
- WebDriver常见八大元素定位解析
- webDriver定位不到元素,常见原因和解决方法
- Selenium WebDriver定位不到元素的常见原因
- WebDriver--定位UI元素
- selenium webdriver定位元素
- webdriver元素定位方法
- webdriver定位不到元素
- webdriver定位元素技巧
- webdriver-定位一组元素
- webdriver 定位元素
- selenium webdriver元素定位
- selenium webdriver 元素定位常见问题
- selenium webdriver 元素定位方法
- Selenium Webdriver元素定位(转)
- selenium webdriver 元素定位扩展
- Selenium Webdriver元素定位方法
- WebDriver API之元素定位
- Webdriver定位之iframe中的元素定位
- 欧基里德距离计算相似度评价值
- BZOJ3526: [Poi2014]Card
- mysqlbin-log如何开启
- 用窗口实现两个加数的和
- lua模块之cjson模块-json解析
- WebDriver常见八大元素定位解析
- php 微擎 分页
- 设置DatePickerDialog主题颜色及起始日期
- log4j
- 理解深度学习中的卷积
- (二)Spring-boot 配置文件加载顺序
- Deep linking 深度链接
- 使用linux 命令行下载oracle官网jdk失败处理方法
- python里使用difflib库的Differ来比较文本