问题描述
您可以在中禁用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......");
解决方法
在使用FirefoxDriver编写测试时,
我发现由于执行javascript和CSS,页面的加载真的很慢。反正有禁用此功能吗?甚至可以将Noscript插件安装到配置文件?
另外,sendKeys()实际上输入了文本。但是,对于长文本来说,这相当慢,无论如何要立即在输入框中输入所有字符串?