Frage

Wie kann ich Selen sagen Htmlunit benutzen?

Ich bin mit Selen-Server-Standalone-2.0b1.jar als Selen-Server im Hintergrund, und die neuesten Python-Bindings mit installiertem "pip installieren -U Selen".

funktioniert alles einwandfrei mit Firefox. Aber ich möchte Htmlunit verwenden, da es ein geringeres Gewicht und braucht nicht X. Dies ist mein Versuch, dies zu tun:

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

Die Frage ist also, was ist der Htmlunit Fahrer genannt? Wie aktiviere ich es?

Der Code für Htmlunit scheint für Selen 2 in der Quelle zu sein, so erwartete ich es wie die anderen Browser standardmäßig zur Verfügung steht. Ich kann keine Anleitung, wie es zu aktivieren.

War es hilfreich?

Lösung

mit dem Selen 2.20.0.jar Server und passende Python-Version, ich bin in der Lage HtmlUnitDriver zu verwenden, indem Sie den Browser als * Angabe Mock

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

Andere Tipps

Wie der 2.0b3 Freigabe des Python-Client können Sie erstellen eine Htmlunit WebDriver über eine Remote-Verbindung wie folgt:

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

Sie können auch die HTMLUNITWITHJS Fähigkeit Element für einen Browser mit Javascript-Unterstützung verwenden.

Beachten Sie, dass Sie benötigen den Selenium Java-Server für diese Arbeit auszuführen, da Htmlunit auf der Java-Seite implementiert ist.

Ich benutze es wie folgt aus:

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')))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top