9

在使用 FirefoxDriver 编写测试时,

我发现由于执行了 javascript 和 css,页面加载速度非常慢。反正有禁用这个吗?甚至可以将 Noscript 插件安装到配置文件中?

此外,sendKeys() 实际上会输入文本。但是,这对于长文本来说相当慢,无论如何要立即将所有字符串输入到输入框中?

4

3 回答 3

17

您可以在以下位置禁用 javaScript FirefoxProfile

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("javascript.enabled", false);
WebDriver driver = new FirefoxDriver(profile);

我认为没有办法禁用 CSS,这不是你应该做的——这可能会破坏你的 Web 应用程序,禁用 JavaScript 也可能会这样做。

无法直接设置文本字段的值 - WebDriver 旨在模拟真实用户“驾驶”浏览器 - 这就是为什么只有 sendKeys。

但是,您可以通过 JavaScript 调用设置元素的值(当然,如果您不禁用它)。这对于长时间测试来说更快,但这不是用户交互的模拟,因此可能不会触发一些验证,因此请谨慎使用:

private void setValue(WebElement element, String value) {
    ((JavascriptExecutor)driver).executeScript("arguments[0].value = arguments[1]", element, value);
}

并使用它:

WebElement inputField = driver.findElement(By...);
setValue(inputField, "The long long long long long long long text......");
于 2010-08-25T08:46:14.483 回答
13

另请参阅不希望在使用 Python 的 Selenium WebDriver 测试中加载图像和在 Firefox 上呈现 CSS

隐藏 CSS 和图像:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("permissions.default.stylesheet", 2);
profile.setPreference("permissions.default.image", 2);
FirefoxDriver browser = new FirefoxDriver(profile);
于 2012-02-01T10:25:27.050 回答
0

Also you can use PhantomJS is WebKit browser without User Interface so it is really faster than FireFox or Chrome. There is web driver support for PhantomJS.

于 2015-05-06T15:16:38.163 回答