如何在Python中使用Selenium WebDriver加载HtmlUnit驱动?
我从Selenium IDE的导出选项中拿到了这段Python代码,然后把self.driver = webdriver.Firefox()
替换成了HtmlUnitDriver(),可是它不工作,出现了一个错误:
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 Scrape(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_scrape(self):
driver = self.driver
....
你能告诉我我哪里做错了吗?我想用HtmlUnit代替Firefox,看看能不能更快地实现我的目标,并且消耗更少的资源。如果可以的话,我还希望能启用JavaScript。你能告诉我应该从文档的哪里找到这些信息吗?我找不到相关内容。
1 个回答
4
我不太确定,但据我所知,HtmlUnitDriver 只有在你使用 Java 版本的 webdriver 时才能用。如果你想在 Python 中使用 HtmlUnitDriver,你需要先启动一个独立的服务器。
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)