我有一个python脚本,可以在其中使用Selenium登录网站。以下是的片段
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
browser = webdriver.Chrome("/path/to/chromdriver", desired_capabilities=chrome_options.to_capabilities())
WebDriverWait(browser, 10)
browser.maximize_window()
browser.get(url)
browser.find_element_by_xpath('//*[@id="mat-input-0"]').send_keys(username)
browser.find_element_by_xpath('//*[@id="mat-input-1"]').send_keys(pass)
browser.find_element_by_xpath('/html/body/app-root/app-login/mat-card/mat-card-content/form/div/button/span').click()
当以python3 test.py
运行时,脚本运行得非常好。但当我将其作为sudo python test.py
运行时,它会崩溃,并出现以下错误:
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed.
(chrome not reachable)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
我需要做哪些更改才能以sudo的身份运行?
从ChromeDriver-Chrome的WebDriver:
Chrome在启动过程中崩溃的一个常见原因是在Linux上以root用户(管理员(身份运行Chrome。虽然在创建WebDriver会话时可以通过传递"--no sandbox"标志来解决这个问题,但这种配置是不受支持的,也是非常不鼓励的。请将您的环境配置为以常规用户身份运行Chrome。
结论
您需要作为常规用户执行测试
参考文献
你可以在中找到一些相关的讨论
- Selenium:WebDriverException:Chrome无法启动:由于谷歌Chrome不再运行而崩溃,因此ChromeDriver假设Chrome已经崩溃
- OpenQA.Selenium.WebDriverException:未知错误:Chrome无法启动:在linux上通过Selenium启动执行测试时异常退出
- org.openqa.selenium.WebDriverException:未知错误:Chrome无法启动:在Ubuntu 18.04上使用Jenkins中的ChromeDriver selenium崩溃