Я провожу несколько тестов с WebDriver и Firefox.
У меня проблема со следующей командой:
WebDriver.get(www.google.com);
С помощью этой команды WebDriver блокируется до возникновения события onload.Хотя обычно это может занять несколько секунд, на веб-сайтах, которые никогда не завершают загрузку, могут потребоваться часы.
Я хотел бы остановить загрузку страницы после определенного времени ожидания, каким-то образом имитируя кнопку остановки Firefox.
Сначала я пытался выполнить следующий код JS каждый раз, когда пытался загрузить страницу:
var loadTimeout=setTimeout(\"window.stop();\", 10000);
К сожалению, это не работает, возможно, потому что:
Из-запорядок загрузки скриптов, метод stop () не может остановить документ, в котором он содержится, от загрузки 1
ОБНОВЛЕНИЕ 1: я пытался использовать SquidProxy в порядкедобавить время ожидания подключения и запроса, но проблема осталась.
Одна странная вещь, которую я обнаружил сегодня, это то, что один веб-сайт никогда не переставал загружаться на моей машине (FF3.6 - 4.0 и Mac Os 10.6.7)загружается нормально в других браузерах и / или компьютерах.
ОБНОВЛЕНИЕ 2: По-видимому, проблему можно решить, сказав Firefox не загружать изображения.надеюсь, после этого все будет работать ...
Хотелось бы, чтобы в WebDriver был лучший драйвер Chrome для его использования.Firefox разочаровывает меня каждый день!
ОБНОВЛЕНИЕ 3: в Selenium 2.9 добавлена новая функция для обработки случаев, когда драйвер зависает.Это можно использовать с FirefoxProfile
следующим образом:
FirefoxProfile firefoxProfile = new ProfilesIni().getProfile("web");
firefoxProfile.setPreference("webdriver.load.strategy", "fast");
Я опубликую, работает ли это после того, как я попробую.
ОБНОВЛЕНИЕ 4: в конце ни один из вышеуказанных методов не сработал,Я заканчиваю тем, что "убиваю" потоки, которые заканчиваются долго.Я планирую попробовать Ghostdriver , который является удаленным WebDriver, который использует PhantomJS в качестве серверной части.PhantomJS - это сценарий без поддержки WebKit, поэтому я не ожидаю проблем с настоящим браузером, таким как Firefox.Для людей, которые не обязаны использовать Firefox (в целях сканирования), я обновлюсь с результатами
ОБНОВЛЕНИЕ 5: Время для обновления.Используя в течение 5 месяцев ghostdriver 1.1 вместо FirefoxDriver, я могу сказать, что я действительно доволен его производительностью и стабильностью.У меня были случаи, когда у нас не подходящее поведение, но в целом ghostdriver достаточно стабилен.Поэтому, если вам нужен, как и я, браузер для сканирования и просмотра веб-страниц, я рекомендую вам использовать ghostdriver вместо firefox и xvfb, что даст вам несколько головных болей ...