java - Selenium、java 和 Testng 用于自动化,识别元素的方法

标签 java selenium-webdriver testng

我正在使用 Selenium、java 和 Testng 进行自动化。我正在使用 ID 来识别元素,但每个人都说 ID 可能会改变,并且使用 Id 进行测试的方式非常脆弱,所以任何人都可以告诉我如何使用 id 的一部分或任何其他不会影响我的自动化的方式,即使一段时间后,ID 发生变化。提前致谢。

最佳答案

恰恰相反...

构建良好的应用程序将始终在页面上具有唯一的 ID,并且是最不可更改的投影内容。

不幸的是,您会遇到动态的甚至重复的事情。

在我工作的地方,我们的 ID 是由 Apache Tapestry 生成的,并且结果是这些类型的 ID。

  • <input id="someID_124905830" />
  • <input id="submit_0" />

但是使用父子层次结构或像input[id^='submit_']这样的部分匹配很容易解决这些问题。

简而言之。该声明无效。

Everybody say that ID's may change and it's very brittle

我的问题是,谁是“所有人”?因为与我交谈过的“每个人”,我确信大多数 Web 开发社区都会不同意。

关于java - Selenium、java 和 Testng 用于自动化,识别元素的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18719160/

相关文章:

flash - 如何在 Selenium WebDriver 中自动化 flex 应用程序

java - 测试|从可运行 jar 内的 main 方法调用 testng.xml 文件

java - clickLongOnScreen(x,y) 和 clickLongOnView(v) 返回 "Injecting to another application requires INJECT_EVENTS permission"

java - 如何使用 JNI 将结构数组从 C++ dll 返回到 Java Applet?

java - 需要找到有内部文本的element元素

java - 如何在 ItestListener 中获取 WebElement

testng - 在通过其他测试确定需要运行哪个testng.xml后,如何通过testng.xml触发testng

java - 检查括号是否匹配总是说它们匹配

java - 通过 Java Regex 验证输入值。我需要接受 0.01 到 1 之间的值

android - Ruby Selenium 无法从安卓图片库中选择图片