“没有找到元素”使用 Java 在 Internet Explorer 上运行的 WebDriver 出现异常
我们想将测试转移到 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 中也能使用。 我尝试过增加睡眠时间,但没有帮助。 getPageSource 方法返回正确的 html。
我还尝试使用以下命令获取 body 标签,但它返回 null。
List<WebElement> list = driver.findElements(By.tagName("body"));
我们的 Web 应用程序是在 gwt 中创建的。
你知道什么可能导致硒看不到任何元素吗?
we want to move our tests to selenium 2 and i have found an issue which i don't know how to resolve it.
I am using the following commands for webdriver:
WebDriver driver = new InternetExplorerDriver();
driver.navigate().to("webapp");
Thread.sleep(3000);
System.out.println(driver.getPageSource());
WebElement element = driver.findElement(By.id("someid"));
At the last line exception is raised and no element is found.
The same example works well in firefox, but we need it to have it in IE.
I have tried to add more sleep, but it doesn't help. getPageSource method returns correct html.
I have also tried to get body tag, with the following command, but it returns null.
List<WebElement> list = driver.findElements(By.tagName("body"));
Our web application is created in gwt.
Do you know what may cause that selenium doesn't see any element?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您发布的代码绝对没有问题。
确保您使用一些较新的 Selenium 版本,而不是一些旧的 alpha/beta 版本。您使用哪个 IE,它有什么特殊的附加组件吗?它可以与像这样的一些最小的网页一起使用吗?
您是否尝试过寻找其他元素?通过其他一些技术,如 xpath 或 css 选择器?你的大小写绝对正确吗?如果您保存页面的 html 并尝试使用所述测试用例在本地加载,它是否有效?您能提供一个最小的测试用例吗?作为不太可能起作用的最后手段解决方案,您可以尝试回退到 Selenium 1,使用两行代码来帮助在某些罕见情况下等待:
The code you posted is absolutely problem-free.
Make sure you use some of the newer Selenium versions and not some old alpha/beta version. Which IE do you use, does it have any special add-ons? Does it work with some minimal web pages like this?
Have you tried searching for another element? By some other technique like xpath or css selector? Is your capitalization absolutely right? If you save the html of the page and try it loading locally with said testcase, does it work? Could you provide a minimal test case? As a unlikely-to-work last resort solution, you can try to fallback to Selenium 1 for two lines of code that help waiting in some rare cases:
在进行赋值语句之前尝试使用像这样的智能等待。您只需要传入当前的 WebDriver 对象和超时值。
Try using a smart wait like this before making your assignment statement. You just need to pass in your current WebDriver object and a timeout value.
也许您可以尝试
在搜索元素之前添加。当 Webdriver 在不同服务器上的页面之间移动时(不是使用 IE,而是使用 Firefox),我遇到了这个问题。
maybe you can try to add
before searching for elements. I had this issue when Webdriver moved between pages on different servers (not with IE but with Firefox).