![无法在 jsp 页面上找到元素(java selenium)](https://linux22.com/image/1589836/%E6%97%A0%E6%B3%95%E5%9C%A8%20jsp%20%E9%A1%B5%E9%9D%A2%E4%B8%8A%E6%89%BE%E5%88%B0%E5%85%83%E7%B4%A0%EF%BC%88java%20selenium%EF%BC%89.png)
我在 jsp 页面中使用 selenium 时找不到任何元素。我尝试打印出页面源代码,但似乎没有任何标题或正文。当我通过浏览器手动检查页面源代码时,我能够看到这些元素。有人能告诉我为什么 selenium 看到的页面源代码与手动操作时不同吗?有解决方法吗?
答案1
我理解你的痛苦。我正在为 ExtJS 网站构建测试,ID、名称和其他常用选择器都是通用的,几乎每次页面加载时都会发生变化。
有两种好方法可以解决这个问题。
不稳定的解决方案(也是我开始使用的解决方案):使用By.xpath("//*[contains(.,'TEXT ON CONTROL')]")
type 语句来查找控件。这种做法不稳定的原因是,有时 findelement 会看到多个控件,即使页面上的控件完全相同。
更好的解决方案(当测试失败时,我会要求开发人员协助解决):让您的开发人员data-test = 'CONTROL NAME'
向控件添加一个属性。这将允许您使用大多数 JSP 编译器忽略并置之不理的特定标识符。