2010-11-02 28 views
10

Estoy usando WebDriver a través de los enlaces de Python located on Google's site. De acuerdo con la documentación here, es compatible con cuatro navegadores: Chrome, IE, Firefox y HtmlUnit. Puedo importar el controlador de Firefox usando from selenium.firefox.webdriver import WebDriver, y el controlador de Chrome usando from selenium.chrome.webdriver import WebDriver.¿Cómo uso el controlador HtmlUnit con Selenium a través de los enlaces de Python?

No hay un módulo HtmlUnit comparable. ¿Cómo importo el controlador HtmlUnit?

Respuesta

5

HtmlUnit es una biblioteca de Java, por lo que la única opción para los enlaces WebDriver que no sean java es utilizar un RemoteWebDriver. Deberá iniciar un Servidor de Selenium y conectarse a él especificando la Unidad de Html como navegador deseado.

no estoy muy familiarizado con Python, pero de acuerdo con http://code.google.com/p/selenium/wiki/PythonBindings que debería ser algo como:

from selenium.remote import connect 
from selenium import HTMLUNIT 


wd = connect(HTMLUNIT, server="http://<selenium_server>:4444") 
+1

Salvo que se pueden utilizar los controladores de IE, Chrome y Firefox a través del pitón enlaces Y http://code.google.com/p/selenium/wiki/PythonBindings dice "Todos los navegadores compatibles con la implementación Java de Selenium están disponibles en los enlaces de Python". –

+3

Pero HtmlUnit no es un navegador: es un marco de trabajo de Java para probar unidades de aplicaciones html/web –

+0

HTMLUnit es un navegador. El hecho de que no pueda verlo renderizado no lo convierte en un navegador menos, solo significa que no tiene cabeza. –

3

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

ya no funciona: ImportError: Ningún módulo llamado remote –

10

he encontrado la respuesta a https://stackoverflow.com/a/5518175/125170

As of the 2.0b3 release of the python client you can create an HTMLUnit webdriver via a remote connection like so:

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

You can also use the HTMLUNITWITHJS capability item for a browser with Javascript support.

Note that you need to run the Selenium Java server for this to work, since HTMLUnit is implemented on the Java side.

-6

// En este caso, puede usar HtmlUnitDriver.

 import org.openqa.selenium.htmlunit.HtmlUnitDriver; 

// Declarar e inicializar el HtmlUnitWebDriver

HtmlUnitDriver unitDriver = new HtmlUnitDriver(); 

// google.com abierta la página del

unitDriver.get("http://google.com"); 
+1

Downvote, esto es para java. OP pidió pitón. – Jeflopo

Cuestiones relacionadas