Selenium WebDriver перейдите на страницу, не дожидаясь загрузки страницы

Я переводил некоторые тесты Selenium RC в Selenium WebDriver, используя api python. В Selenium WebDriver я замечаю, что driver.get( 'http://...' ), кажется, дождался загрузки всей страницы, прежде чем продолжить. Есть ли способ не дождаться загрузки страницы? На некоторых страницах, которые я запрашиваю, есть много внешних ресурсов, которые могут потребовать много времени для загрузки. Я предпочел бы ждать появления элементов в DOM, чем ждать загрузки всего. Из-за этого некоторые из моих тестов, кажется, занимают в два раза больше времени в WebDriver.

Ответ 1

Да и нет. Начиная с Selenium 2.24.1, поддержка для этого только в Firefox - вам нужно запустить его в специальном "режиме" :

FirefoxProfile fp = new FirefoxProfile();
fp.setPreference("webdriver.load.strategy", "unstable");
WebDriver driver = new FirefoxDriver(fp);

Вы даже можете установить таймаут, если хотите. Этот метод не работает в любом браузере, кроме Firefox, и ничего не делает в Firefox без нестабильной стратегии:

driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);