如何在Python中使用Selenium WebDriver加载HtmlUnit驱动?

1 投票
1 回答
3705 浏览
提问于 2025-04-18 22:46

我从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) 

撰写回答