我正在尝试使用带有Chrome驱动程序的SELENIUM中的测试自动化来捕获下拉菜单字段.
为什么使用Chrome浏览器不时检查元素时,某些网页中的元素“ id”会发生变化?如何保持“ id”为静态,而不进行更改?
我遵循的步骤:
>当我检查网页中的元素时,特定的下拉菜单将其“ id”显示为:id =“ combo-1782-inputEl”
通过在普通的Chrome浏览器中检查网页观察到的ID:
>然后,我在Java代码(自动化脚本)中使用了上述ID,如下所示:
.driver.findElement(By.id( “组合-1782-inputEl”))点击();
>当我运行测试时>谷歌浏览器会自动打开>直到满足上面的代码行,测试才能成功.
>但是,当遇到上述代码行时,测试失败引发以下异常:
>类org.openqa.selenium.NoSuchElementException *
>然后,我检查了由自动测试软件打开(控制)的chrome网页中的同一下拉菜单项,发现“ id”与步骤1中提到的先前id不同.
在这种情况下,“ id”是:“ combo-1781-inputEl”
通过检查由自动化软件控制的chrome浏览器中的网页观察到的id:
如您所见,ID中间的数字从1减少.
(1782-1 = 1781)
在同一网页上的其他下拉菜单项中发现相同的问题.
造成此问题的原因是什么?我该如何克服这种情况?请帮忙. ?
附:当我在代码中使用“ combo-1781-inputEl”(步骤5中的“ id”)时,测试成功通过.
driver.findElement(By.id("combo-1782-inputEl")).click(); //Test: failed
driver.findElement(By.id("combo-1781-inputEl")).click(); //Test: passed
我希望通过使用在步骤1中获得的“ id”通过在不受自动化软件控制的普通chrome浏览器中检查网页来通过测试.