如何使用Python绑定在Selenium webdriver中加载HtmlUnit驱动程序?

时间:2014-08-30 07:27:43

标签: python selenium selenium-webdriver webdriver web-scraping

我从Selenium IDE导出选项中提取了这个Python代码,我用HtmlUnitDriver()替换了self.driver = webdriver.Firefox()但是由于我有错误它不起作用:

AttributeError: 'module' object has no attribute 'HtmlUnitDriver'

代码是:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re

class Scrap(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.HtmlUnitDriver()
        self.driver.setJavascriptEnabled(true)
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.google.com/"
        self.verificationErrors = []
        self.accept_next_alert = True

    def test_scrap(self):
        driver = self.driver
....
你可以告诉我我做错了什么吗?我想使用HtmlUnit而不是firefox,看看我是否可以用更少的资源更快地实现我的目标。如果可能的话,我需要激活Javascript。如果有可能你也可以告诉我,我应该从文档中获取这些信息,因为我找不到它?

1 个答案:

答案 0 :(得分:4)

不确定但AFAIK HtmlUnitDriver仅在您使用java版本时才可用 的webdriver。如果你想在python中使用htmlunit驱动程序,你需要启动独立服务器

java -jar selenium-server-standalone-x.x.x.jar 

然后连接到使用远程服务器

from selenium import webdriver
driver = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.HTMLUNIT)
//or with enabled js
driver = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.HTMLUNITWITHJS)