我正在尝试在linux上启动chrome webdriver,但是它挂起然后关闭

时间:2019-07-02 20:29:11

标签: python selenium chrome-web-driver

我正在用硒(python)编写程序。它正在工作,并且在任何地方,Webdriver都不再起作用。我正在Windows环境下进行开发(并且工作正常),但是将代码上传到生产服务器(Ubuntu)后,我尝试打开W​​eb驱动程序,它仅显示data;,该驱动程序挂起,然后关闭。此后没有代码继续。

示例:

print("Starting web driver")
driver = webdriver.Chrome(driver_path, options=opt)
print("Opening URL") # This code doesn't run
driver.get(config.url) # This code doesn't run

我尝试过的事情:

  • 在Windows上运行(正常运行)

  • 更新网络驱动程序

  • 在venv之外运行它

  • 在新的隔离环境中运行驱动程序

  • 将整个代码包装在try-except中(无错误输出)

  • 使用参数--headless

  • 运行

编辑:我正在运行python3.7,chrome webdriver V 75.0.3770.90

Edit2:driver_path var是chromedriver文件的相对路径。 opt是我的chrome选项列表:

opt = Options()
opt.add_argument('--no-sandbox')
opt.add_argument('--disable-dev-shm-usage')
profile = {"plugins.always_open_pdf_externally": True,
           "download.default_directory": download_directory,
           "download.prompt_for_download": False,
           "download.directory_upgrade": True}
opt.add_experimental_option("prefs", profile)

我也正在使用gunicorn作为我的Web服务器,但是在默认的(烧瓶)Web服务器上运行它,我仍然遇到问题。我还将通过基于烧瓶的Web应用程序(它是一个工作的Web应用程序)执行为硒编写的功能。运行脚本的ubuntu计算机已安装了桌面环境。

What happens

15-25秒后,窗口关闭,终端上无输出。大约90秒后,我在终端收到一条消息:

Message: session not created
from disconnected: unable to connect to renderer
    (Session info: chrome=75.0.3770.90)

我还注意到chrome驱动程序需要比平常更多的时间来打开。

Edit3:我从字面上删除了整个虚拟机,然后从头开始重新安装它,但我仍然遇到相同的问题,我已还原到较旧的版本,但仍然无法运行,这使得逻辑意义上。我唯一的想法是存在一些配置错误或某些干扰。

Edit4:通过添加参数--verbose,我能够从WebDriver获取日志 这是日志:

[1562179109.454][INFO]: resolved localhost to ["::1","127.0.0.1"]
[1562179111.454][WARNING]: Timed out connecting to Chrome, retrying...
[1562179111.454][INFO]: resolved localhost to ["::1","127.0.0.1"]
[1562179115.454][WARNING]: Timed out connecting to Chrome, retrying...
[1562179115.455][INFO]: resolved localhost to ["::1","127.0.0.1"]
[1562179123.454][WARNING]: Timed out connecting to Chrome, retrying...
[1562179123.455][INFO]: resolved localhost to ["::1","127.0.0.1"]
[1562179139.455][WARNING]: Timed out connecting to Chrome, giving up.
[1562179139.506][INFO]: [42e538ee02eb06b9ac776969dddf01d1] RESPONSE InitSession ERROR session not created
from disconnected: unable to connect to renderer
  (Session info: chrome=75.0.3770.90)
[1562179139.506][DEBUG]: Log type 'driver' lost 9 entries on destruction
[1562179139.506][DEBUG]: Log type 'browser' lost 0 entries on destruction

我对Linux不太熟悉,但是从过去的经验中,我感觉到它与/ etc / hosts有关(idk?)

Edit5: 我注意到在安装Windscribe(vpn)之后这开始发生,这使我认为Windscribe某种程度上干扰了连接。

1 个答案:

答案 0 :(得分:-1)

事实证明,windscribe(vpn)干扰了与chrome webdriver的连接,我相信它与内置防火墙有关,在卸载后,调用sudo apt autoremove -y并重新启动后,它可以正常工作正确!

编辑:我重新安装了VPN(windscribe)并停用了随附的防火墙,然后防火墙正常工作。