【问题标题】:Selenium + Firefox + Python on WSL 2.0WSL 2.0 上的 Selenium + Firefox + Python
【发布时间】:2021-02-09 20:51:29
【问题描述】:

抱歉,我阅读了几个主题,但找不到解决方案。所以,我想做的是在 WSL 上使用 Selenium 和 firefox。代码如下所示:

    def getHTML_(self):
        '''
            getting HTML with beautifulsoup and selenium
        '''
        options = Options()
        options.set_headless(headless=True)
        options.log.level = "trace"
        browser = webdriver.Firefox(firefox_options=options)

我得到的是以下(已知)错误:

selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process

.log 说:

1603805101772 mozrunner::runner INFO 运行命令:“/usr/bin/firefox”“-marionette”“-foreground”“-no-remote”“-profile”“/tmp/rust_mozprofilehybl9w” 错误:未指定 DISPLAY 环境变量 1603805357626 mozrunner::runner INFO 运行命令:“/usr/bin/firefox”“-marionette”“-headless”“-foreground”“-no-remote”“-profile”“/tmp/rust_mozprofile2x1kmq” *** 您正在以无头模式运行。 因通道错误退出。

然后跟随一个很长的列表

[Parent][MessageChannel] 错误:

...最终导致杀死错误。

我尝试了不同的 firefox 版本、geckodriver、selenium 组合。其中最新版本 Selenium 3.14、geckodriver 0.27、firefox 82。没有任何效果。我是否正确地认为网络驱动程序仍在尝试首先在没有无头模式的情况下启动 Firefox?!但为什么?我正在传递它应该以无头模式运行的论点,不是吗?

感谢您的帮助!

【问题讨论】:

    标签: python selenium firefox windows-subsystem-for-linux geckodriver


    【解决方案1】:

    错误指向版本不匹配(在 gecko/selenium 等之间。但是,您的版本是正确的)或网站本身存在问题。因此,URL 会有所帮助。此错误由 Firefox invalid argument: can't kill an exited process 生成,以防应用程序出现问题。这不是headless 问题。您可以尝试像这样手动设置 firefox 二进制文件

    binary = FirefoxBinary('F:\FirefoxPortable\Firefox.exe')
    driver = webdriver.Firefox(firefox_binary=binary)
    

    【讨论】:

    • 感谢您的评论!但我什至没有加载网站,我只是在实例化网络驱动程序......我回到办公室后会尝试二进制版本。
    猜你喜欢
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2016-03-10
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    相关资源
    最近更新 更多