怎么可能
driver.findElement(By.cssSelector("input[id*='supplierOps_input'][class*='ui-autocomplete-input']"));
抛出此异常:org.openqa.selenium.NoSuchElementException : Returned node was not an HTML element.
并且
driver.findElements(By.cssSelector("input[id*='supplierOps_input'][class*='ui-autocomplete-input']"));
效果很好,他的.size()
返回1(所以我只有1个元素),我可以使用.get(0).getAttribute("id");
获取id值
我的大脑挣扎。
更新:
这是POM.xml中的Selenium部分
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>servlet-api-2.5</artifactId>
</exclusion>
</exclusions>
</dependency>
答案 0 :(得分:0)
好吧,我的大脑再次受伤,因为在这个问题发生后2天,我试图做同样的事情,findElement(By.cssSelector())
和findElements(By.CssSelector())
,现在效果都很好。
我也尝试过使用xpath并且运行良好,例如:
driver.findElement(By.xpath("//input[contains(@id,'supplierOps_input') and contains(@class,'ui-autocomplete-input')]"))
这可能不是一个真正的答案,因为我无法找到为什么我的第一次尝试使用cssSelector回复了我:org.openqa.selenium.NoSuchElementException : Returned node was not an HTML element.
也许它不稳定有时它会很酷而其他它会抛出......