在 Ubuntu 服务器上无法使用 selenium 模块

问题描述 投票:0回答:2

我正在努力解决这个错误:

(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

在我的 Ubuntu 服务器 22.04 上使用 selenium 模块时。问题是,相同的代码在我的本地 PC 上运行相同的 Ubuntu 版本时运行良好。

为了避免琐碎的问题:

  • 驱动程序位置和二进制位置正确
  • 我使用--无头模式
  • 我有相同版本的 google-chrome 和 chromedriver

代码:

# initial settings for selenium
driver_location = '/usr/bin/chromedriver'
binary_location = '/usr/bin/google-chrome'

options = Options()
options.binary_location = binary_location
options.add_argument('--headless')

service = Service(driver_location)
driver = webdriver.Chrome(service=service, options=options)

再说一遍,我想我需要以某种方式利用这个代码在我的本地电脑上运行的事实。也许你们可以建议我检查什么...

python selenium-webdriver ubuntu-server
2个回答
0
投票

更换:

options.add_argument('--headless')

与:

options.add_argument(''--headless=new'')

并执行您的测试。

参见DeprecationWarning:headless 属性已弃用,请在 Selenium 4.8.0 Python 上使用 add_argument('--headless') 或 add_argument('--headless=new')


0
投票

我在 Ubuntu 中的 chrome 和 Edge 上都遇到了同样的问题。我删除了镀铬和边缘并重新安装了边缘。可能是驱动版本问题。

这对我有用:

edge_options = Options()
edge_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36')
edge_options.add_argument("--headless")    
edge_options.binary_location='/usr/bin/microsoft-edge'

driver = webdriver.Edge(service=Service(EdgeChromiumDriverManager().install()),options=edge_options)
© www.soinside.com 2019 - 2024. All rights reserved.