“权限被拒绝”错误破坏Selenium抓取
我一直在用Selenium(Python的一个网页自动化工具)抓取一个网站。当我尝试让它点击一个选项时,出现了权限被拒绝的错误。完整的错误信息如下:
Traceback (most recent call last):
File "scrape.py", line 19, in <module>
subjectOptions[1].click()
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webelement.py", line 45, in click
self._execute(Command.CLICK_ELEMENT)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webelement.py", line 194, in _execute
return self._parent.execute(command, params)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 153, in execute
self.error_handler.check_response(response)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 147, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: u"'Error: Permission denied for <http://localhost/scrape_test> to get property HTMLDocument.compatMode' when calling method: [wdIMouse::move]"
这是导致问题的代码。我确定我想点击的选项是存在的(根据print
的输出):
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait #available since 2.4.0
import time
# Create a new instance of the FireFox driver
driver = webdriver.Firefox()
# go to the local version of the page for testing
driver.get("http://localhost/scrape_test")
# Find the select by ID, get its options
selectElement = driver.find_element_by_id("CLASS_SRCH_WRK2_SUBJECT$65$")
subjectOptions = selectElement.find_elements_by_tag_name("option")
# Click the desired option
subjectOptions[1].click()
我在Mac OS X 10.7.2上使用的是Firefox 8.0.1。
2 个回答
0
目前你可以通过这里提供的解决方法来绕过这个问题,具体内容可以查看这个链接。
5
看起来这是一个webdriver的bug。最近一位修改了selenium源代码的程序员在日志中提到:
这导致了权限错误,我仍然无法解决:
错误:在调用方法时,无法获取http://www.finn.no的属性'HTMLDocument.compatMode',权限被拒绝:[wdIMouse::move]
根据讨论,使用Firefox 7应该没有问题。此外,这个相关问题暗示尽管出现错误,链接仍然可以被点击,所以在try/except块中可能会有效。