WebDriver的几种定位方式介绍

简介:
  1. 通过ID查找元素   

通过页面元素的ID来查找元素是最为推荐的方式。W3C标准推荐开发人员为每一个页面元素都提供一个独一无二的ID元素,因此开发人员应避免单个页面上的所有元素存在ID不唯一的情况和元素ID是自动生成的情况。

页面元素的ID被作为首选的识别属性,因为这是最快的识别策略。

driver.findElement(By.id("Title")).sendKeys("test content");//如果需要,可用WebElement先存储起来, 然后再进行相应操作。


    2.通过Name查找元素

    WebElement searchBox = driver.findElement(By.name("wd"));

    searchBox.sendKeys("java");

    searchBox.submit();//提交


    3.通过ClassName查找元素

    4.通过TagName查找元素

与前述几个方式略有不同。其原因是同一个页面上具有相同TagName的元素可能一个都没,也可能有多个。因此建议在使用TagName为查找元素的条件时,使用findElements()来替代findElement()函数。

        List<WebElement> scriptList = driver.findElements(By.tagName("script"));

        System.out.println("There are "+scriptList.size()+" scripts on Xiaomi's page!");

    5.通过LinkText查找元素

eg.<a href = "www.baidu.com">提交</a>

        WebElement aboutGenExam = driver.findElement(By.linkText("提交"));

        aboutGenExam.click();

    

    6.通过PartialLinkText查找元素

spacer.gif


如上,百度页面下方有“关于百度”的链接地址,其HTML代码如上,可通过anchor上的部分文本信息来查找该元素并进行操作, 如通过“关于”二字来查找该链接地址。

        driver.get("www.baidu.com");

        WebElement aboutLink = driver.findElement(By.partialLinkText("关于"));

        aboutLink.click();

findElement()方法只会返回页面上第一个满足partialLinkText为“关于”的元素。如果希望找到页面上所有包含部分文本为"关于"的链接元素,则使用findElements()方法来替代。


    7.使用CSS选择器查找元素

eg.需根据实际情况来判断。

        WebElement about = driver.findElement(By.cssSelector("#lsb-id"));

        aboutLink.click();


    8.通过Xpath查找元素

    xpath很强悍,但定位性能不是很好,所以还是尽量少用。如果确实少数元素不好定位,可以选择xpath或cssSelector。


    9.通过JQuery查找元素(p34-39)

    JQuery允许开发人员通过简单的步骤快速识别页面上的元素。在使用JQuery简化Selenium查找元素之前 ,需要首先确认页面是否已经加载了JQuery库。在这里分情况进行阐述,一种情况是页面本身已经加载了JQuery库,另一种情况是页面本身并没加载JQuery库。



本文转自 honzhang 51CTO博客,原文链接:http://blog.51cto.com/hongz/1768227

相关文章
|
4月前
|
前端开发 测试技术 UED
使用Selenium WebDriver模拟用户操作防止滑动条验证
在进行Web自动化测试时,经常会遇到各种前端验证机制,如滑动条验证,这些机制设计用来防止自动化脚本模拟用户行为。在本文中,我们将探讨如何使用Selenium WebDriver来模拟用户操作,以规避这些验证机制。
|
5月前
|
JavaScript 测试技术
Selenium报错ElementNotInteractableException元素不可交互,该如何解决?
本文介绍了Selenium测试中遇到的`ElementNotInteractableException`异常,该异常通常由于元素被遮挡、不可见、被禁用或位于框架内导致。解决方法包括等待元素可交互、确保元素可见、检查元素状态及切换到正确框架。示例代码展示了如何使用显式等待策略处理此异常,以提高测试稳定性。
160 0
|
XML 前端开发 数据格式
selenium--Xpath定位
selenium--Xpath定位
|
12月前
|
JavaScript 前端开发 测试技术
吐槽selenium的定位
吐槽selenium的定位
40 0
|
前端开发 测试技术 开发者
selenium-元素的定位
selenium-元素的定位
|
JavaScript 前端开发 程序员
761.【技术】Selenium元素可定位,但不可操作,原因有哪些?--chatGTP
761.【技术】Selenium元素可定位,但不可操作,原因有哪些?--chatGTP
235 0
selenium 4.0学习(二)常用定位和函数方法
selenium 4.0学习(二)常用定位和函数方法
selenium 4.0学习(二)常用定位和函数方法
|
XML 前端开发 JavaScript
Selenium自动化用法详解【定位页面元素】
Selenium自动化用法详解【定位页面元素】
224 0
Selenium自动化用法详解【定位页面元素】
|
XML JavaScript Java
appium定位-控件定位
客户端的页面通过 XML 来实现 UI 的布局,页面的 UI 布局作为一个树形结构,而树叶被定义为节点。这里的节点也就对应了要定位的元素
|
前端开发
【selenium】定位页面元素
简介:【selenium】定位页面元素
【selenium】定位页面元素