Как использовать драйвер HtmlUnit с Selenium через привязки Python?

Я использую WebDriver через привязки Python, расположенные на сайте Google. Согласно документации здесь, он поддерживает четыре браузера: Chrome, IE, Firefox и HtmlUnit. Я могу импортировать драйвер Firefox, используя from selenium.firefox.webdriver import WebDriver, и драйвер Chrome, используя from selenium.chrome.webdriver import WebDriver.

Не существует сопоставимого модуля HtmlUnit. Как импортировать драйвер HtmlUnit?


person Chris B.    schedule 02.11.2010    source источник


Ответы (4)


Я нашел ответ на https://stackoverflow.com/a/5518175/125170.

Начиная с версии 2.0b3 клиента python вы можете создать веб-драйвер HTMLUnit через удаленное соединение следующим образом:

from selenium import webdriver
driver = webdriver.Remote(
  desired_capabilities=webdriver.DesiredCapabilities.HTMLUNIT)
driver.get('http://www.google.com')

Вы также можете использовать элемент возможностей HTMLUNITWITHJS для браузера с поддержкой Javascript.

Обратите внимание, что для этого вам нужно запустить сервер Selenium Java, поскольку HTMLUnit реализован на стороне Java.

person Keith    schedule 20.05.2012

HtmlUnit — это библиотека Java, поэтому единственным выбором для привязок WebDriver, отличных от Java, является использование RemoteWebDriver. Вам нужно будет запустить Selenium Server и подключиться к нему, указав HtmlUnit в качестве желаемого браузера.

Я не очень хорошо знаком с Python, но согласно http://code.google.com/p/selenium/wiki/PythonBindings это должно выглядеть примерно так:

from selenium.remote import connect
from selenium import HTMLUNIT


wd = connect(HTMLUNIT, server="http://<selenium_server>:4444")
person Sergii Pozharov    schedule 02.11.2010
comment
За исключением того, что вы можете использовать драйверы IE, Chrome и Firefox через привязки Python. И code.google.com/p/selenium/wiki/PythonBindings говорит Все браузеров, поддерживаемых Java-реализацией Selenium, доступны в привязках Python. - person Chris B.; 03.11.2010
comment
Но HtmlUnit — это не браузер, а Java-фреймворк для модульного тестирования html/веб-приложений. - person Sergii Pozharov; 03.11.2010
comment
HTMLUnit — это браузер. Тот факт, что вы не видите, как он отображается, не делает его менее браузерным — это просто означает, что он безголовый. - person Professor Tom; 23.11.2016

Я использую это так:

from selenium.remote import connect                                                                                                                          

b = connect('htmlunit')                                                                                                                                      
b.get('http://google.com')                                                                                                                                   

q = b.find_element_by_name('q')                                                                                                                              
q.send_keys('selenium')                                                                                                                                      
q.submit()                                                                                                                                                   

for l in b.find_elements_by_xpath('//h3/a'):                                                                                                                 
    print('%s\n\t%s\n' % (l.get_text(), l.get_attribute('href')))
person Alexey Kuzminich    schedule 17.02.2011
comment
больше не работает: ImportError: нет модуля с именем удаленный - person jcomeau_ictx; 29.11.2017

Я согласен с ответом выше, но сервер должен быть открыт перед этим. После загрузки сервера и htmlunitdriver, cmd должен быть открыт в том же файле. и это должно быть записано в cmd.

java -cp "htmlunit-driver-2.47.1-jar-with-dependencies.jar; selenium-server-standalone-3.141.0.jar" org.openqa.grid.selenium.GridLauncherV3

Конечно, версия может быть другой. Обновите код соответствующим образом. Также код, который я использую для htmlunitdriver в python:

from selenium import webdriver
driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.HTMLUNIT)
driver.get('http://www.google.com')
person Hengen Asdwdrasd    schedule 19.02.2021