Selenium 2 driver.findElement()

时间:2013-04-30 09:14:57

标签: java webdriver css-selectors selenium-webdriver

怎么可能

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>

1 个答案:

答案 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.

也许它不稳定有时它会很酷而其他它会抛出......