如何知道网页正在使用动态ID

时间:2016-03-02 02:40:35

标签: selenium automated-tests

对于测试自动化,我们如何知道网页是否使用动态ID。在这里,我不是指我们如何获得动态ID 。相反,我想知道如何使用API​​,例如Selenium API,用于了解Web元素是否使用动态ID。

例如,当我们选择选项时,某些ComboBox的ID不会更改。但对于其他ComboBox的ID,它可能会更改为选择选项

那么,我们是否有办法检测或知道网页中的网页元素是否使用了动态ID?

1 个答案:

答案 0 :(得分:1)

不,遗憾的是,您无法发现是否id会使用Selenium进行更改。

HTML元素改变id属性的唯一方法是通过JavaScript代码。知道一段JavaScript代码是否更改id的唯一方法是执行它。 (换句话说,您不能提前知道id会发生变化。您只能知道JS代码在实际更改id时会更改id,并且当然,到了这个时候,变化已经发生了。)

另一方面,如果您想知道元素是否已更改id,您可以在更改之前通过Selenium(使用driver.findElement())获取它然后继续检查其属性是否已更改。 (如果WebElement实例在此过程中变得陈旧,您可以作为变通方法添加具有唯一名称的类,然后使用by.className()找回它 - 因为您可能找不到它再次由id像以前一样,因为它可能已经改变了。)