Selenium 不打开指定的 URL 并显示数据:,

问题描述

我正在尝试在 chrome 中使用 selenium 打开 URL.我有 chromedriver 可用.

以下是我要执行的代码.

从 selenium 导入 webdriverchrome_options = webdriver.ChromeOptions()chrome_options.add_argument("--disable-infobars")驱动程序 = webdriver.Chrome(executable_path="./chromedriver", chrome_options=chrome_options)driver.get("https://google.com")

浏览器打开成功,但没有打开指定的URL.浏览器中的 URL 是 data:,.

任何帮助将不胜感激.请!

请看附图.

注意:Selenium 版本:3.14.0

我在关闭 chrome 选项卡时收到以下错误.

文件test.py",第 6 行,在 <module>驱动程序 = webdriver.Chrome(executable_path="./chromedriver", chrome_options=chrome_options)文件/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/chrome/webdriver.py",第 75 行,在 __init__期望的能力=期望的能力)__init__ 中的文件/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py",第 156 行self.start_session(功能,浏览器配置文件)文件/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py",第 251 行,在 start_session响应 = self.execute(Command.NEW_SESSION,参数)文件/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py",第320行,在执行self.error_handler.check_response(响应)文件/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py",第 242 行,在 check_response引发异常类(消息、屏幕、堆栈跟踪)selenium.common.exceptions.WebDriverException:消息:未知错误:Chrome 无法启动:正常退出(铬无法访问)(从 chrome 位置/usr/bin/google-chrome 开始的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃.)(驱动程序信息:chromedriver=2.42.591071 (0b695ff80972cc1a65a5cd643186d2ae582cd4ac),平台=Linux 4.10.0-37-generic x86_64)

解决方案

这个错误信息...

selenium.common.exceptions.WebDriverException:消息:未知错误:Chrome 启动失败:正常退出(铬无法访问)(从 chrome 位置/usr/bin/google-chrome 开始的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃.)

...暗示 ChromeDriver 实例无法启动 Chrome 浏览器 进程.

您的主要问题是 google-chrome 不再出现在 /usr/bin/

的预期默认位置

根据

1 对于 Linux 系统,ChromeDriver 期望/usr/bin/google-chrome 成为实际 Chrome 二进制文件的符号链接.您还可以按如下方式覆盖 Chrome 二进制位置:

  • 基于 Windows 操作系统的示例:

    从 selenium 导入 webdriver从 selenium.webdriver.chrome.options 导入选项选项=选项()options.add_argument("开始最大化")options.binary_location("C:\path\to\chrome.exe")driver = webdriver.Chrome(executable_path=r'C:path	ochromedriver.exe', chrome_options=options)driver.get('http://google.com/')

其他注意事项

  • 将 ChromeDriver 升级到当前的 ChromeDriverv2.42 级别.
  • 将 Chrome 版本保持在 Chrome v68-70 级别之间.(根据 ChromeDriver v2.42 发行说明)
  • 清理你的项目工作区通过你的IDE和重建你的项目只需要依赖.
  • 如果您的基础 Web Client 版本太旧,请通过 卸载它Revo Uninstaller 并安装最新的 GA 和发布版本的 Web Client.
  • 执行你的 @Test.

I am trying to open the URL using selenium in chrome. I have chromedriver available with me.

following is the code I want to execute.

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-infobars")

driver = webdriver.Chrome(executable_path="./chromedriver", chrome_options=chrome_options)
driver.get("https://google.com")

The browser is opened successfully but it doesn't open the specified URL. The URL in the browser is data:,.

Any help will be greatly appreciated. Please!

Please see the attached image.

Note: Selenium version : 3.14.0

I get the following error on closing the chrome tab.

File "test.py", line 6, in <module>
    driver = webdriver.Chrome(executable_path="./chromedriver", chrome_options=chrome_options)
  File "/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/chrome/webdriver.py", line 75, in __init__
    desired_capabilities=desired_capabilities)
  File "/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 156, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 251, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 320, in execute
    self.error_handler.check_response(response)
  File "/home/speedious/anaconda3/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited normally
  (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.)
  (Driver info: chromedriver=2.42.591071 (0b695ff80972cc1a65a5cd643186d2ae582cd4ac),platform=Linux 4.10.0-37-generic x86_64)

解决方案

This error message...

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited normally
  (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.)

...implies that the ChromeDriver instance was unable to start the Chrome Browser process.

Your main issue is the google-chrome is no longer present at the expected default location of /usr/bin/

As per ChromeDriver - Requirements the server expects you to have Chrome installed in the default location for each system:

1 For Linux systems, the ChromeDriver expects /usr/bin/google-chrome to be a symlink to the actual Chrome binary. You can also override the Chrome binary location as follows:

  • A Windows OS based example:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("start-maximized")
    options.binary_location("C:\path\to\chrome.exe")
    driver = webdriver.Chrome(executable_path=r'C:path	ochromedriver.exe', chrome_options=options)
    driver.get('http://google.com/')
    

Additional Considerations

  • Upgrade ChromeDriver to current ChromeDriver v2.42 level.
  • Keep Chrome version between Chrome v68-70 levels. (as per ChromeDriver v2.42 release notes)
  • Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
  • If your base Web Client version is too old, then uninstall it through Revo Uninstaller and install a recent GA and released version of Web Client.
  • Execute your @Test.

相关文章