java - 就 selenium webdriver 中元素定位器的层次结构提出建议

标签 java eclipse selenium-webdriver

虽然我知道如何在 Selenium Webdriver 中搜索页面上的不同元素以供测试,例如通过 xpath、id、css 等,但我在寻求一些关于使用哪个层次结构以及为什么的建议之后?例如。我们应该在恢复到搜索 ID 之前使用 xpath 定位器吗?

意识到这一点将使我能够以正确的方式构建我的测试,以便它们尽快运行。

最佳答案

根据我对 selenium 的经验,我认为以下是最好的层次结构:

  1. 编号

  2. 姓名

  3. 链接文本

  4. 部分链接文本

  5. 标签名称

  6. 类名

  7. CSS

  8. 路径

1 - 通过 ID 每个元素始终是唯一的,因此我们可以轻松访问并且网络驱动程序可以快速访问。大多数情况下,我们应该更喜欢将 ID 作为查找元素的第一优先级。

2 - 如果按 ID 不正确,那么我们应该查看“名称”。但很多时候会出现多个名称,因此如果同名属性多次出现,则需要注意这一点。

3 - “通过链接文本”和“通过部分链接文本”如果站点中的所有链接都具有唯一的链接文本,也是查找元素的好方法。

4 - 如果您的站点或页面具有下拉列表、复选框等组元素,那么您可以使用属性“按标记名” 来查找元素。

5 - 通过“类名” 是一种罕见的查找元素的方法,因为大多数网站对多个项目使用相同的类名来应用 css。但确保您可以将它用于唯一的类名。

6 - 如果您需要快速定位复杂元素,请使用属性 “Css 选择器” 来查找元素。

7 - 主要使用“Xpath” 属性来导航 xml 文档。您仍然可以将它用于网页或网站。

注意:元素定位器的选择基本上取决于您的页面,即页面包含的内容类型太多,例如太多的下拉菜单、复选框、文本框等等。但是我给定的步骤是通用的,您可以按照这些步骤在任何站点找到元素并顺利执行程序。

希望以上内容能对您有所帮助。

其他引用 link .

关于java - 就 selenium webdriver 中元素定位器的层次结构提出建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27355003/

相关文章:

java 看不到 CLASSPATH

java - 不使用Image可以画透明图层吗?-LibGdx

java - 使用 <context :property-placeholder> in a factory method 定义的属性

java - 用于检查重复元素的 1 个数组的片段

selenium-webdriver - 识别通过框架生成而不是通过原始 HTML 构建的对象

javascript - 如何测试导航菜单是否包含所有预期项目?

java - 如何将参数添加到wiremock中的 stub 响应主体中?

正在释放的 JAVA 指针未分配

java - 在 Eclipse 中使用 git 的目录结构

javascript - 如何在node.js中查找页面上的所有链接?