使用FirefoxDriver写测试时,FirefoxDriver:如何禁用javascript,css并使sendKeys类型立即生效?
我发现加载的页面真的很慢,因为JavaScript和css被执行。无论如何,禁用此?甚至可以将Noscript插件安装到配置文件中?
此外,sendKeys()实际上输出文本。但是,对于长文本来说这很慢,无论如何要立即在输入框中输入所有字符串?
使用FirefoxDriver写测试时,FirefoxDriver:如何禁用javascript,css并使sendKeys类型立即生效?
我发现加载的页面真的很慢,因为JavaScript和css被执行。无论如何,禁用此?甚至可以将Noscript插件安装到配置文件中?
此外,sendKeys()实际上输出文本。但是,对于长文本来说这很慢,无论如何要立即在输入框中输入所有字符串?
可以在FirefoxProfile
禁用javascript:
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......");
见也Do not want images to load and CSS to render on Firefox in Selenium WebDriver tests with Python
要隐藏CSS和图像:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("permissions.default.stylesheet", 2);
profile.setPreference("permissions.default.image", 2);
FirefoxDriver browser = new FirefoxDriver(profile);
而且您可以使用PhantomJS是没有用户界面的WebKit浏览器,因此它比FireFox或Chrome更快。 PhantomJS支持Web驱动程序。
通过使整个字符串一次出现来颠覆WebDriver。 WebDriver被设计为模仿用户,用户不会奇迹般地使文本出现,他们将其输出。它可能需要稍长的时间,但它是一个真实的人的准确模拟。 – Ardesco 2012-02-07 14:11:52
如果禁用JS,CSS,则整个页面可能会中断,因此Selenium WebDriver要执行的某些功能测试可能会中断。测试的目的是功能性而非性能。 – 2014-04-10 07:58:50