对于测试自动化,我们如何知道网页是否使用动态ID。在这里,我不是指我们如何获得动态ID 。相反,我想知道如何使用API,例如Selenium API,用于了解Web元素是否使用动态ID。
例如,当我们选择选项时,某些ComboBox的ID不会更改。但对于其他ComboBox的ID,它可能会更改为选择选项。
那么,我们是否有办法检测或知道网页中的网页元素是否使用了动态ID?
答案 0 :(得分:1)
不,遗憾的是,您无法发现是否id
会使用Selenium进行更改。
HTML元素改变id
属性的唯一方法是通过JavaScript代码。知道一段JavaScript代码是否更改id
的唯一方法是执行它。 (换句话说,您不能提前知道id
会发生变化。您只能知道JS代码在实际更改id
时会更改id
,并且当然,到了这个时候,变化已经发生了。)
另一方面,如果您想知道元素是否已更改id
,您可以在更改之前通过Selenium(使用driver.findElement()
)获取它然后继续检查其属性是否已更改。 (如果WebElement
实例在此过程中变得陈旧,您可以作为变通方法添加具有唯一名称的类,然后使用by.className()
找回它 - 因为您可能找不到它再次由id
像以前一样,因为它可能已经改变了。)