【问题标题】:Chrome crashes when running selenium python3 script as sudo以 sudo 运行 selenium python3 脚本时 Chrome 崩溃
【发布时间】:2020-09-04 12:55:52
【问题描述】:

我有一个使用 Selenium 登录网站的 python 脚本。以下是sn-p

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 身份运行?

【问题讨论】:

    标签: python-3.x selenium google-chrome selenium-webdriver selenium-chromedriver


    【解决方案1】:

    来自ChromeDriver - WebDriver for Chrome

    Chrome 在启动期间崩溃的一个常见原因是在 Linux 上以 root 用户(管理员)身份运行 Chrome。虽然可以通过在创建 WebDriver 会话时传递 '--no-sandbox' 标志来解决此问题,但不支持并且强烈建议不要使用此类配置。请配置您的环境,改为以普通用户身份运行 Chrome。


    结论

    您需要以普通用户

    的身份执行测试

    参考文献

    您可以在以下位置找到一些相关讨论:

    【讨论】:

    • 嗨@DebanjanB,需要在另一个以sudo bash start.sh ... 运行的程序下运行这个测试用例。在这种情况下,是否没有可行的解决方法?
    猜你喜欢
    • 2020-12-25
    • 2019-07-29
    • 2023-03-15
    • 2016-10-11
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 2016-09-07
    相关资源
    最近更新 更多