Форум сайта python.su
Здравствуйте. Есть потенциальная задача работать с сайтом через selenium. Делать тесты…
Если кто-либо работал с ним, подскажите пжлст, есть ли на чистом питоне альтернатива?
Стоит ли работать с selenium через python api? какие могут быть минусы при таком варианте?
Сам я есстественно щас всё это поставил и гугл…
Офлайн
windmill, но он умер и автор вроде как сам юзает selenium
так что без вариантов
Отредактировано slav0nic (Дек. 7, 2012 16:49:34)
Офлайн
вместо стандартного webdriver возьмите webdriverplus
Офлайн
Спасибо!
Помогите ситуацию прояснить, пжлст. В родном модуле селениума есть драйвера HtmlUnit/HtmlUnitWithJS.
Документацию webdriverplus прочитал полностью, в поддерживаемых драйверах нету HtmlUnitWithJS(скорее всего с ним и придётся работать).
Может там этот драйвер как то обёрнут по своему?
Если -нет, то есть приемлимые способы обхода этой ситуации?
И сильно ли уступает реализация python API реализации Java API?
Пока писал, посмотрел код повнимательнее…
Вот начало класса HtmlUnit в webdriverplus(причем класс _Remote наследуется из родного пакета selenium):
from selenium.webdriver.remote.webdriver import WebDriver as _Remote class HtmlUnit(WebDriverMixin, _Remote): _selenium = 'selenium-server-standalone-2.22.0.jar' _selenium_url = 'http://selenium.googlecode.com/files/' + _selenium _auto_install = True def __init__(self, *args, **kwargs): # ведь можно переопределить этот метод? self._perform_auto_install() self._autorun_selenium_server() super(HtmlUnit, self).__init__("http://localhost:4444/wd/hub", DesiredCapabilities.HTMLUNIT, **kwargs) # остальные методы ...
from webdriverplus import HtmlUnit from selenium.webdriver.common.desired_capabilities import DesiredCapabilities class myHtmlUnitWithJS(HtmlUnit): def __init__(self, *args, **kwargs): super(HtmlUnit, self).__init__("http://localhost:4444/wd/hub", DesiredCapabilities.HTMLUNITWITHJS, **kwargs) # Просто заменил предпочтение...
Отредактировано buddha (Дек. 10, 2012 00:16:51)
Офлайн
честно говоря не пробовал HtmlUnitWithJS, только Chrome/Firefox/Opera. в питоновской версии я не нашёл методов ждущих появление элемента, в либе Java и документации они есть, поэтому пришлось писать свой костыль (в webdriverplus он уже есть)
Офлайн
А названия этих методов не скажете(из webdriverplus)?
Отредактировано buddha (Дек. 11, 2012 09:58:37)
Офлайн
оно включено по умолчанию https://github.com/tomchristie/webdriverplus/blob/master/webdriverplus/selectors.py#L72
ещё помогает метод implicitly_wait у сессии http://seleniumhq.org/docs/04_webdriver_advanced.html#implicit-waits, нам было его достаточно, но нужно подогнать под браузер. фф медленнее грузит страницы, но js стабильно работает. хром быстро грузит страницы, но js не всегда успевает загрузиться и бывают глюки
Офлайн
благодарю…
Офлайн
> честно говоря не пробовал HtmlUnitWithJS, только Chrome/Firefox/Opera. в питоновской версии я не нашёл методов ждущих появление элемента
А это не оно? http://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_support/selenium.webdriver.support.wait.html
Офлайн
Возможно, phantomjs(ghost.py)
Офлайн