FirefoxDriver: как мгновенно отключить javascript, css и заставить sendKeys печатать?

Используя FirefoxDriver для написания тестов,

я обнаружил, что загрузка страниц действительно медленная из-за выполнения javascript и css. Есть ли вообще отключить это? Можно ли даже установить плагин Noscript в профиль?

Кроме того, sendKeys () фактически печатает текст. однако для длинного текста это довольно медленно, во всяком случае, чтобы сразу ввести всю строку в поле ввода?

9
задан KJW 19 August 2010 в 21:22
поделиться

1 ответ

Вы можете отключить javaScript в FirefoxProfile:

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

Я не думаю, что есть способ отключить CSS, и это не то, что вам следует делать - это может сломать вашу сеть приложение, и отключение 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......");
17
ответ дан 4 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: