如何通过Python绑定将HtmlUnit驱动程序与Selenium一起使用?

时间:2010-11-02 20:16:12

标签: python selenium webdriver

我正在通过Python绑定located on Google's site使用WebDriver。根据文档here,它支持四种浏览器:Chrome,IE,Firefox和HtmlUnit。我可以使用from selenium.firefox.webdriver import WebDriver导入Firefox驱动程序,使用from selenium.chrome.webdriver import WebDriver导入Chrome驱动程序。

没有类似的HtmlUnit模块。如何导入HtmlUnit驱动程序?

5 个答案:

答案 0 :(得分:11)

我在https://stackoverflow.com/a/5518175/125170

找到答案
  

从python客户端的2.0b3版本开始,您可以创建一个   通过远程连接HTMLUnit webdriver,如下所示:

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

您还可以将HTMLUNITWITHJS功能项用于浏览器   Javascript支持。

     

请注意,您需要运行Selenium Java服务器才能工作,   因为HTMLUnit是在Java端实现的。

答案 1 :(得分:5)

HtmlUnit是一个Java库,因此非Java WebDriver绑定的唯一选择是使用RemoteWebDriver。您将需要启动Selenium Server并连接到它,指定HtmlUnit作为所需的浏览器。

我对Python不太熟悉,但根据http://code.google.com/p/selenium/wiki/PythonBindings,它应该看起来像:

from selenium.remote import connect
from selenium import HTMLUNIT


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

答案 2 :(得分:3)

我这样用:

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

答案 3 :(得分:0)

我同意上面的回答,但是在此之前必须打开服务器。下载服务器和htmlunitdriver后,cmd应该在同一个文件中打开。这应该写入cmd。

java -cp "htmlunit-driver-2.47.1-jar-with-dependencies.jar; selenium-server-standalone-3.141.0.jar" org.openqa.grid.selenium.GridLauncherV3

当然版本可能不一样。相应地更新代码。 还有我在 python 中用于 htmlunitdriver 的代码:

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

答案 4 :(得分:-9)

//在这种情况下你可以使用HtmlUnitDriver。

       import org.openqa.selenium.htmlunit.HtmlUnitDriver;

//声明并初始化HtmlUnitWebDriver

    HtmlUnitDriver unitDriver = new HtmlUnitDriver();

//打开google.com网页

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