2011-01-06 40 views
13

¿Cómo le digo a Selenium que use HTMLUnit?¿Cómo uso el controlador HTMLUnit con Selenium de Python?

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 de peso 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, lo que se llama el conductor 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.

+0

me ha etiquetado esto con selenio RC, así, ya No me importa si uso Selenium 2 o Selenium-RC. – frabcus

+0

posible duplicado de [¿Cómo utilizo el controlador HtmlUnit con Selenium a través de los enlaces de Python?] (Http://stackoverflow.com/questions/4081724/how-do-i-use-the-htmlunit-driver-with-selenium a través de los enlaces de python) – CraigTeegarden

Respuesta

5

utilizando el servidor de selenio 2.20.0.jar y combina con el modelo de pitón, soy capaz de utilizar 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') 
2

lo uso como esto:

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

¿Dónde hay alguna forma de proporcionar la interfaz Selenium 1 mediante HtmlUnit? – uhbif19

15

partir de la versión 2.0b3 del cliente Python se puede crear una HtmlUnit WebDriver a través de una conexión remota, así:

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

También puede utilice el elemento de capacidad HTMLUNITWITHJS para un navegador compatible con Javascript.

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

Cuestiones relacionadas