在使用 FirefoxDriver 编写测试时,
我发现由于执行了 javascript 和 css,页面加载速度非常慢。反正有禁用这个吗?甚至可以将 Noscript 插件安装到配置文件中?
此外,sendKeys() 实际上会输入文本。但是,这对于长文本来说相当慢,无论如何要立即将所有字符串输入到输入框中?
您可以在以下位置禁用 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......");
另请参阅不希望在使用 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);
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.