FirefoxDriver: как отключить JavaScript, CSS и сделать тип sendKeys мгновенно? - PullRequest
9 голосов
/ 20 августа 2010

При использовании FirefoxDriver для написания тестов

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

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

Ответы [ 3 ]

17 голосов
/ 25 августа 2010

Вы можете отключить 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......");
13 голосов
/ 01 февраля 2012

См. Также Не хотите, чтобы изображения загружались и CSS отображался в Firefox в тестах Selenium WebDriver с Python

Чтобы скрыть CSS и изображения:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("permissions.default.stylesheet", 2);
profile.setPreference("permissions.default.image", 2);
FirefoxDriver browser = new FirefoxDriver(profile);
0 голосов
/ 06 мая 2015

Также вы можете использовать PhantomJS - браузер WebKit без пользовательского интерфейса, поэтому он действительно быстрее, чем FireFox или Chrome.Для PhantomJS есть поддержка веб-драйверов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...