我们想将测试转移到 selenium 2,但我发现了一个我不知道如何解决的问题。
我正在为 webdriver 使用以下命令:
WebDriver driver = new InternetExplorerDriver();
driver.navigate().to("webapp");
Thread.sleep(3000);
System.out.println(driver.getPageSource());
WebElement element = driver.findElement(By.id("someid"));
在最后一行引发异常并且没有找到元素。 同样的示例在 firefox 中运行良好,但我们需要在 IE 中使用它。 我试过增加 sleep 时间,但无济于事。 getPageSource 方法返回正确的 html。
我也尝试使用以下命令获取 body 标签,但它返回 null。
List<WebElement> list = driver.findElements(By.tagName("body"));
我们的 Web 应用程序是在 gwt 中创建的。
你知道 Selenium 看不到任何元素的原因吗?
最佳答案
您发布的代码绝对没有问题。
确保您使用一些较新的 Selenium 版本,而不是一些旧的 alpha/beta 版本。您使用哪个 IE,它是否有任何特殊的附加组件?它适用于像这样的一些最小网页吗?
<html>
<input id='myId' />
</html>
您是否尝试过搜索其他元素?通过其他一些技术,如 xpath 或 css 选择器?你的大小写绝对正确吗?如果您保存页面的 html 并尝试使用所述测试用例在本地加载它,它是否有效?你能提供一个最小的测试用例吗?作为不太可能工作的最后解决方案,您可以尝试回退到 Selenium 1 以获得两行代码,这些代码有助于在极少数情况下等待:
Selenium sele = new WebDriverBackedSelenium(driver, "webapp");
sele.waitForPageToLoad("10000");
关于java - 使用 Java 在 Internet Explorer 上运行的 WebDriver 中出现 "No element is found"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6584365/