我正在尝试使用Selenium来解析名为output.html
的本地HTML文件。
在Python解释器中,我可以进行导入,创建webdriver.Chrome
驱动程序对象和GET
我的本地文件。
当尝试使用驱动程序的功能查找任何内容时,我会收到错误消息。
>>> from selenium import webdriver
>>> from selenium.webdriver.chrome.options import Options
>>>
>>> chrome_options = Options()
>>> chrome_options.binary_location = '/usr/bin/google-chrome'
>>> chrome_options.add_argument('--headless')
>>> chrome_options.add_argument('--no-sandbox')
>>> chrome_options.add_argument('--disable-dev-shm-usage')
>>>
>>> driver = webdriver.Chrome(chrome_options=chrome_options)
>>>
>>> driver.get('file:output.html')
>>>
>>> # no error up to here
>>>
>>> driver.name # runs ok
>>> driver.orientation # runs ok
>>>
>>> driver.page_source # error!
>>> driver.find_element_by_name('p_system') # error!
我对错误的原因感到困惑。我在Google上找到的每个页面都表明chromedriver和/或Google Chrome二进制文件放置在错误的位置,或者Selenium找不到该位置,但事实并非如此,因为我可以成功使用GET
与驱动程序(与本地HTML文件一起使用),并且可以在https://www.python.org
之类的网站上运行相同的代码。
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
(Session info: headless chrome=74.0.3729.169)
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Linux 4.4.0-17763-Microsoft x86_64
虽然很容易将问题标记为重复并继续进行,但最好复查问题,至少检查它们之间是否存在差异。
其他Stack Overflow问题之间的主要区别在于,该问题适用于外部网站,但不适用于本地文件。其他版本根本不起作用,更改版本可以解决此问题。
如错误回溯中所示,chromedriver
版本和无头chrome
版本均为74,并且应与此site兼容。
Selenium网络驱动程序将按预期工作,直到您调用某个函数,然后它将引发错误。
答案 0 :(得分:0)
尝试使用完整的文件路径,如下面的示例所示。
url = r"file:///C:/Users/xxxx/Desktop/delte.html"
driver.get(url)