首页 文章

使用Selenium的Chrome驱动程序错误:无法发现打开的页面

提问于
浏览
26

我在运行Selenium测试时遇到与Chrome驱动程序相关的错误 . 错误消息是“ Unable to Discover Open Pages. ”Selenium测试一直运行到昨晚 . 问题似乎是在前一天重新启动服务器后开始的 . 我无法在本地方框上重现此错误 . 从服务器上的命令行运行Selenium测试会打开Chrome浏览器,但会导致相同的错误 . 有任何想法吗?

Line that is failing:

chromeDriver = new OpenQA.Selenium.Chrome.ChromeDriver(externalDriverPath);

Error message and stacktrace:

无法在OpenQA.Selenium.Remium.mlenver.Execute的OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(响应errorResponse)中发现打开的页面(驱动程序信息:chromedriver = 2.1,platform = Windows NT 6.1 SP1 x86_64)(String driverCommandToExecute, OpenQA.Selenium.Chlenium.Chrome.ChromeDriver..ctor(String)中OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)的OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor,ICapabilities desiredCapabilities)中的字典`2参数)在SeleniumTests.BaseTest.SetupBrowsers()的OpenQA.Selenium.Chrome.ChromeDriver..ctor(String chromeDriverDirectory)中的chromeDriverDirectory,ChromeOptions选项)

创建ChromeDriver实例时,会出现一个控制台窗口 . 带错误的服务器似乎引用了未实现的内容 .

ChomeDriver Output From the Server with the Error:

在端口2984上启动ChromeDriver(v2.1)[4700:4292:0108/111503:错误:gpu_info_collector_win.cc(102)]无法检索va盖WinSAT评估 . [4700:4292:0108/111503:错误:chrome_views_delegate.cc(176)] NOT IMPLEMENTED [4700:4292:0108/111503:错误:desktop_root_window_host_win.cc(746)] NOT IMPLEMENT ED [0108/111504:错误:gl_surface_egl . cc(132)] eglInitialize失败,错误UNKNO WN [0108/111504:ERROR:gl_surface_win.cc(97)] GLSurfaceEGL :: InitializeOneOff失败 .

ChomeDriver Output From My PC which works fine:

在端口18786上启动ChromeDriver(v2.1)[884540:883760:0108/114010:错误:gpu_info_collector_win.cc(102)]无法检索有效的WinSAT评估 . [884992:884996:0108/114010:错误:base_feature_provider.cc(122)] manifestTypes:一个低温的web_page上下文需要提供匹配值 . [885232:885236:0108/114011:错误:base_feature_provider.cc(122)] manifestTypes:一个较慢的web_page上下文需要提供匹配值 . [884540:883760:0108/114011:错误:base_feature_provider.cc(122)] manifestTypes:一个低温的web_page上下文需要提供匹配值 . [0108/114011:错误:gl_surface_egl.cc(131)] eglInitialize失败,错误UNKNO WN [0108/114011:错误:gl_surface_win.cc(54)] GLSurfaceEGL :: InitializeOneOff失败 .

6 回答

  • 4

    您使用的是ChromeDriver的高度过时版本 . 您的第一个停靠点应该是更新here .

    我非常怀疑问题是您的服务器上的Chrome已更新,而且ChromeDriver v2.1并不适用于任何最新版本的Chrome .

  • 25

    在这里寻找其他可能的解决方案:https://groups.google.com/forum/?hl=en#!topic/selenium-users/gfvfH-YEC48

    在我的例子中,向ChromeOptions添加--no-sandbox参数解决了这个问题 .

  • 5

    首先确保您已通过菜单UI更新了Chrome浏览器 .

    然后更新ChromeDriver,here .

  • 8

    我有同样的问题,但更新到最新的ChromeDriver(v2.8)并没有解决它 . 我在CI服务器(运行64位Win 7的戴尔机器)上运行Selenium . 每当服务器“闲置”一段时间时,我就得到了例外 .

    解决这个问题的方法是在Windows的“电源选项”中将“关闭显示后”设置为“从不” .

  • 0

    出于某种原因,如果您将链接更改为http,Chrome驱动程序无法插入https流量,它将很有效 .

  • 0

    这是我在挖掘周围摆脱错误时发现的一个快速解决方法: unknown error: unable to discover open pages

    在量角器配置文件中,添加以下内容:

    capabilities: {
        browserName: 'chrome',
        chromeOptions: {
          args: ['--no-sandbox']
        }   
    },
    

    最重要的一条是 --no-sandbox ;添加该行以某种方式摆脱该错误 .

    我不确定它为什么会起作用,但这是我在网上挖掘时发现的一种解决方法 .

    ****************************截至2016年4月10日更新 ****************************

    请忽略上面的这一部分,因为该解决方法不是一个正确的解决方案;下面我告诉你问题的实际解决方法;你只有一个过时的chrome驱动程序,并且运行“webdriver-manager update”只会更新到v2.22,所以我将告诉你如何在下面获取v2.24 .


    如果您的webdriver-manager更新未将chromedriver更新到最新版本,即过去的v2.22或更新到2016年4月10日的v2.24,请继续阅读 .

    我失去了几个星期左右我的头发问题 "Unable to discover open pages" 和每次我更新chromedriver,它会更新到 version 2.22 chromedriver,我相信selenium服务器 v2.53 . 我的问题不是真的与selenium服务器,所以v2.53很好 .

    Issue was with chromedriver v2.22.
    

    尽管this chromdriver link显示有2.24的最新版本, 'webdriver-manager update' 不会拿起最新版本,它会只获取版本2.22的chrome驱动程序 .

    我是怎么绕过这个的?

    检查此链接后,只需运行以下命令,查看要更新的chromedriver版本;例如,我想要v2.24所以我运行以下命令:

    webdriver-manager更新--versions.chrome 2.24

    如果您检查您的位置: C:\Users\<USER>\AppData\Roaming\npm\node_modules\webdriver-manager\selenium\

    你应该看到那里下载了所需的chromedriver;如果它不在那里,请阅读命令提示日志,它会告诉你它下载了你的chromdriver文件的位置 .

    希望有人帮助!

相关问题