2010-11-02 13 views
10

Używam WebDriver poprzez powiązania Python located on Google's site. Zgodnie z dokumentacją here obsługuje ona cztery przeglądarki: Chrome, IE, Firefox i HtmlUnit. Mogę zaimportować sterownik Firefoksa za pomocą from selenium.firefox.webdriver import WebDriver, a sterownik Chrome za pomocą from selenium.chrome.webdriver import WebDriver.Jak używać sterownika HtmlUnit z Selenium za pomocą powiązań Python?

Nie ma porównywalnego modułu HtmlUnit. Jak zaimportować sterownik HtmlUnit?

Odpowiedz

5

HtmlUnit jest biblioteką Java, więc jedynym wyborem dla powiązań WebDriver innych niż Java jest użycie RemoteWebDriver. Będziesz musiał uruchomić serwer Selenium i połączyć się z nim, określając HtmlUnit jako pożądaną przeglądarkę.

nie jestem zaznajomiony z Pythona, ale według http://code.google.com/p/selenium/wiki/PythonBindings powinno to wyglądać mniej więcej tak:

from selenium.remote import connect 
from selenium import HTMLUNIT 


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

wyjątkiem, że można użyć sterowników IE, Chrome i Firefoksa poprzez Pythonie wiązania. Http://code.google.com/p/selenium/wiki/PythonBindings mówi: "Wszystkie przeglądarki obsługiwane przez implementację języka Java w Selenie są dostępne w powiązaniach Pythona". –

+3

Ale HtmlUnit nie jest przeglądarką - jest to środowisko Java do testowania jednostkowego aplikacji html/web –

+0

HTMLUnit to przeglądarka. Tylko dlatego, że nie widzisz tego, renderowanie nie powoduje, że jest to przeglądarka - oznacza to tylko, że jest bez głowy. –

3

używam go tak:

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

nie działa: ImportError: Brak modułu o nazwie remote –

10

Znalazłem odpowiedź na 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

// Możesz użyć HtmlUnitDriver w tym przypadku.

 import org.openqa.selenium.htmlunit.HtmlUnitDriver; 

// Deklarowanie i inicjalizacji HtmlUnitWebDriver

HtmlUnitDriver unitDriver = new HtmlUnitDriver(); 

// otwarte google.com strona

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

Downvote, to jest dla java. OP poprosił o pythona. – Jeflopo

Powiązane problemy