我从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。如果有可能你也可以告诉我,我应该从文档中获取这些信息,因为我找不到它?
答案 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)