execute_script examples example code python selenium-rc htmlunit selenium-webdriver

examples - ¿Cómo uso el controlador HTMLUnit con Selenium de Python?



selenium python example code (3)

¿Cómo le digo a Selenium que use HTMLUnit?

Estoy ejecutando selenium-server-standalone-2.0b1.jar como un servidor Selenium en segundo plano, y los últimos enlaces de Python instalados con "pip install -U selenium".

Todo funciona bien con Firefox. Pero me gustaría utilizar HTMLUnit, ya que es más ligero y no necesita X. Este es mi intento de hacerlo:

>>> import selenium >>> s = selenium.selenium("localhost", 4444, "*htmlunit", "http://localhost/") >>> s.start() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.6/dist-packages/selenium/selenium/selenium.py", line 189, in start result = self.get_string("getNewBrowserSession", start_args) File "/usr/local/lib/python2.6/dist-packages/selenium/selenium/selenium.py", line 223, in get_string result = self.do_command(verb, args) File "/usr/local/lib/python2.6/dist-packages/selenium/selenium/selenium.py", line 217, in do_command raise Exception, data Exception: Failed to start new browser session: Browser not supported: *htmlunit Supported browsers include: *firefox *mock *firefoxproxy *pifirefox *chrome *iexploreproxy *iexplore *firefox3 *safariproxy *googlechrome *konqueror *firefox2 *safari *piiexplore *firefoxchrome *opera *iehta *custom

Entonces, la pregunta es, ¿cómo se llama el controlador HTMLUnit? ¿Cómo lo habilito?

El código para HTMLUnit parece estar en la fuente de Selenium 2, por lo que esperaba que estuviera disponible de manera predeterminada como los otros navegadores. No puedo encontrar instrucciones sobre cómo habilitarlo.


Lo uso así:

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'')))


A partir de la versión 2.0b3 del cliente de python puede crear un controlador de web HTMLUnit a través de una conexión remota como esta:

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

También puede usar el HTMLUNITWITHJS capacidad HTMLUNITWITHJS para un navegador con soporte Javascript.

Tenga en cuenta que necesita ejecutar el servidor Selenium Java para que esto funcione, ya que HTMLUnit se implementa en el lado de Java.


utilizando el servidor selenium 2.20.0.jar y la versión correspondiente de python, puedo usar HtmlUnitDriver especificando el navegador como * simulacro

from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities server_url = "http://%s:%s/wd/hub" % (test_host, test_port) dc = DesiredCapabilities.HTMLUNIT wd = webdriver.Remote(server_url, dc) wd.get(''http://www.google.com'')