Question

Comment puis-je dire Sélénium utiliser HTMLUnit?

Je suis en cours d'exécution en tant que serveur Sélénium sélénium serveur autonome-2.0b1.jar en arrière-plan, et les dernières liaisons Python installés avec « pip installer -U sélénium ».

Tout fonctionne très bien avec Firefox. Mais je voudrais utiliser HTMLUnit, car il est un poids plus léger et n'a pas besoin X. Ceci est ma tentative de le faire:

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

La question est, quel est le pilote HTMLUnit appelé? Comment puis-je activer?

Le code HTMLUnit semble être la source de Sélénium 2, donc je m'y attendais qu'il soit disponible par défaut comme les autres navigateurs. Je ne peux pas trouver des instructions sur la façon de l'activer.

Était-ce utile?

La solution

en utilisant le serveur 2.20.0.jar de sélénium et correspondant à la version python, je suis en mesure d'utiliser HtmlUnitDriver en spécifiant le navigateur comme * 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')

Autres conseils

de la version 2.0b3 du client python, vous pouvez créer un HTMLUnit WebDriver via une connexion à distance comme ceci:

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

Vous pouvez également utiliser l'élément de capacité de HTMLUNITWITHJS pour un navigateur avec Javascript.

Notez que vous devez exécuter le serveur Java Sélénium pour que cela fonctionne, puisque HTMLUnit est mis en œuvre sur le côté Java.

Je l'utilise comme ceci:

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')))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top