在 selenium chromedriver 上运行的远程调试 Internjs

Posted

技术标签:

【中文标题】在 selenium chromedriver 上运行的远程调试 Internjs【英文标题】:Remote debugging Internjs that runs on selenium chromedriver 【发布时间】:2015-03-12 22:35:23 【问题描述】:

我尝试远程调试 Internjs 运行的测试。 基本上它是由 Selenium 和 Chromedriver 运行的 Chrome。

我将 Chromedriver debuggerAddress 选项设置为

debuggerAddress: '127.0.0.1:8765'

现在,当我运行测试时,Selenium 会等待一段时间,然后失败并显示消息:

FATAL ERROR
UnknownError: [POST http://localhost:4444/wd/hub/session / "desiredCapabilities":"browserName":"chrome","name":"tests/intern_local","idle-timeout":60,"selenium-version":"2.44.0","chromeOptions":"debuggerAddress":"127.0.0.1:8765"] unknown error: cannot connect to chrome at 127.0.0.1:8765
from chrome not reachable
  (Driver info: chromedriver=2.12.301326 (093c7e07b4a916b690e784b0374c7f618f1ea4be),platform=Mac OS X 10.10.1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.64 seconds

我不确定我必须做什么才能使 chrome 连接到服务器。

我试过了:

在该端口上运行 chromedriver ./chromedriver_2.11 --port=8765 使用--remote-debugging-port=8765 运行 chrome

但我不知道如何启动 chrome 调试服务器。

我尝试过但对我不起作用的有用链接:

Remote debugging protocol Remotely debugging Chrome Desktop Chromedriver Capabilities (aka ChromeOptions)

更新 1 强制 Chrome 驱动程序使用已开启远程调试的 Chrome 实例

像Mozilla article一样运行一个新的Chrome实例

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --no-first-run --no-default-browser-check --user-data-dir=$(mktemp -d -t 'chrome-remote_data_dir')

实习生

intern.capabilities = 
  'selenium-version': '2.44.0'
, 'chromeOptions': 
    debuggerAddress: '127.0.0.1:9222'
  
;

现在,当您运行实习生测试时,实习生将使用您之前打开的 Chrome 实例。现在您可以打开localhost:9222,您会看到您可以调试运行测试的选项卡。但是对我来说,我只能看到那个远程标签,但点击它什么也没做。

我也试过 Firefox WebIDE。我试图连接到localhost:9222,它开始加载,一段时间后它说它无法连接。

【问题讨论】:

【参考方案1】:

我今晚尝试了类似的方法,但没有使用框架。我打开了一个 webdriver 会话并添加了远程调试器功能。 似乎不可能同时运行 webdriver 会话和远程调试。我请了一些 Google 人员进行验证,但尚未收到答复。

【讨论】:

所以,我想知道这是不是真的(webdriver session + remote debug 同时=不可能)。 从我前段时间调试的情况来看,这两个工具似乎使用相同的调试器协议,分别使用相同的服务器端点连接到浏览器。如果这已经由其中一个进程控制,则另一个进程将无法连接。未经任何比我更专业的人验证,但这是我观察到的行为。

以上是关于在 selenium chromedriver 上运行的远程调试 Internjs的主要内容,如果未能解决你的问题,请参考以下文章

在Centos7上安装Python+Selenium+Chrome+Chromedriver

在树莓派 3 上使用 selenium 和 chromedriver 时出错 - Raspbian Jessie

sh 在Ubuntu 16.04上安装ChromeDriver和Selenium

sh 在Ubuntu 16.04上安装Chrome,ChromeDriver和Selenium

sh 在Ubuntu 16.04上安装Chrome,ChromeDriver和Selenium

ChromeDriver - 在 Selenium WebDriver 自动化上弹出禁用开发者模式扩展