【发布时间】:2011-09-02 01:15:23
【问题描述】:
目前,我正在开发 WebDriver 以调用 IE 浏览器来运行测试。但是当我尝试运行下面的简单示例时,我收到了NoSuchElementException。
但是,如果我使用 Chrome 驱动程序或 Firefox 驱动程序,代码就可以正常工作。 任何想法或想法将不胜感激。
罐子:selenium-server-standalone-2.5.0.jar
代码:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public static void main(String[] args) throws InterruptedException {
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new InternetExplorerDriver(ieCapabilities);
driver.get("www.google.com");
driver.findElement(By.name("q"));
}
错误信息:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to find element with name == q (WARNING: The server did not provide any stacktrace information)
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.5.0', revision: '13516', time: '2011-08-23 18:29:57'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_25'
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:131)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:105)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:409)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:197)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByName(RemoteWebDriver.java:246)
at org.openqa.selenium.By$ByName.findElement(By.java:298)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:189)
at lib.WebDriver2.main(WebDriver2.java:14)
【问题讨论】:
-
该堆栈跟踪/错误消息看起来不完整,您确定它完整吗?
-
您好,更新了错误信息 :) IE 浏览器已打开并定向到 google 页面。但是,它试图找到元素“q”时失败了
-
这里有同样的问题。我使用的是 64 位系统,但使用的是 32 位 jvm,所以驱动程序也是 32 位的。下面列出的没有任何帮助
-
您已经明确避免必须设置 IE 的保护模式设置。这就是
InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS功能设置的作用。如果您删除此功能设置并按照project wiki 中的说明设置保护模式设置,会发生什么情况? -
您好 JimEvans,非常感谢您的帮助!我删除了“ieCapabilities”。相反,我选择了 Internet 选项并按照 Project Wiki 的步骤进行操作。它现在对我有用。最重要的信息是“您必须将每个区域的保护模式设置设置为相同的值”。再次感谢您的帮助。
标签: java internet-explorer selenium-webdriver