硒的webdriver无法识别RichFaces的下拉值

问题描述:

Firepath screenshot Link to screenshot硒的webdriver无法识别RichFaces的下拉值

在我的环境只有适用的浏览器是Chrome浏览器但是,除非浏览器缩小到80%,否则应用程序也会出现问题并且不会呈现Richfaces下拉菜单。当缩小时,这是浏览器唯一显示下拉值的时间,否则在100%缩放时,Chrome会显示附加的水平滚动条。我已经用尽了所有方法来尝试在运行时识别对象,但它不会识别。 此外,选择下拉与整个页面时,HTML是完全不同的。用于识别下拉

语法如下:

driver.findElement(By.id("orderCreationForm:j_id211:productSelect")).click(); //This line to click on the dropdown pulldown tree 

driver.findElement(By.xpath("//span[contains(.,'Fish Hooks')]")).click(); //This line to click on the actual dropdown item 
+0

共享thwhtml ot链接 – iamsankalp89

+1

请仔细阅读[问],尤其是关于[mcve](MCVE)的部分,以及[预计需要多少研究工作?](https://meta.*.com/questions/261592/)研究工作量 - 预期 - 堆栈溢出 - 用户)这将帮助您调试自己的程序并为自己解决问题。如果你这样做并且仍然卡住,你可以回过头来发布你的MCVE,你试过的,以及执行结果,包括任何错误信息,这样我们可以更好地帮助你。还提供了一个链接到页面和/或相关的HTML。 – JeffC

+0

使用带有'j_id211'的选择器(例如)非常不安全,因为它是由'Richfaces'动态创建的。新版本可能会有不同的选择器,并且测试将失败。你可以为你试图测试的这个页面添加一些HTML和截图吗? – Tom

因为很有可能你的CSS被重写一些RichFaces的造型看起来很奇怪。

至于定位下拉菜单 - 它不在inplaceSelect父元素下,但在<body>下。由RichFaces创建的大多数元素都有一个唯一的类名(在组件子树内),您可以使用它来查找该元素 - 下拉父项具有rich-inplace-select-width-list