ric*_*h25 5 javascript java htmlunit selenium-webdriver htmlunit-driver
我有个问题。
是什么使得 FirefoxDriver 能够找到 WebElements 并在 java 代码中单击它们,但是当使用 HtmlUnitDriver 运行相同的代码时,却找不到相同的 WebElements。此外,当在 HtmlUnit 上运行相同的代码(应用 HtmlUnit 原理)时,找不到 WebElements,实际上代码返回 NullPointerException。有什么特别的原因吗?
如果没有看到你的代码,我可能会猜测这可能是因为你需要启用 JavaScript。
默认情况下,HtmlUnitDriver 中禁用 JavaScript。
如果您查看源构造函数(LICENSE Apache 2.0)
/**
* Constructs a new instance, specify JavaScript support
* and using the {@link BrowserVersion#getDefault() default} BrowserVersion.
*
* @param enableJavascript whether to enable JavaScript support or not
*/
public HtmlUnitDriver(boolean enableJavascript) {
this(BrowserVersion.getDefault(), enableJavascript);
}
Run Code Online (Sandbox Code Playgroud)
/**
* Constructs a new instance with JavaScript disabled,
* and the {@link BrowserVersion#getDefault() default} BrowserVersion.
*/
public HtmlUnitDriver() {
this(BrowserVersion.getDefault(), false);
}
/**
* Constructs a new instance with the specified {@link BrowserVersion}.
*
* @param version the browser version to use
*/
public HtmlUnitDriver(BrowserVersion version) {
this(version, false);
}
Run Code Online (Sandbox Code Playgroud)
您会看到,如果未提供变量,它们会提供默认 false。
因此,要在 HtmlUnitDriver 中启用 javascript,您需要在初始化它时提供 true,即您希望 JavaScript 组件在其中处于活动状态。
WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_38, true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |