FirefoxDriver:如何禁用javascript,css并立即使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......");

解决方法

在使用FirefoxDriver编写测试时,

我发现由于执行javascript和CSS,页面的加载真的很慢。反正有禁用此功能吗?甚至可以将Noscript插件安装到配置文件?

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

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”