【问题标题】:Cant initialize remote JxBrowser using Chromedriver and Selenium无法使用 Chromedriver 和 Selenium 初始化远程 JxBrowser
【发布时间】:2020-07-06 08:20:42
【问题描述】:

我正在尝试自动化具有用于登录的集成网页的 JavaFx 应用程序。 我正在使用此处找到的代码:https://jxbrowser.support.teamdev.com/support/solutions/articles/9000013135-jxbrowser-selenium 一切都在我的本地机器上运行良好。 问题是我需要在远程机器上打开应用程序并与之集成。 上面的代码不起作用,我得到了

unknown error: cannot connect to chrome at 192.168.2.147:9222
from chrome not reachable

错误。

我尝试了另一种不使用 chromeDriverService 而是使用 selenium 网格的方法,它看起来像这样:

DesiredCapabilities capabilities = new DesiredCapabilities();
ChromeOptions options = new ChromeOptions();

String remoteDebuggingAddress = add + ":9222";

options.setExperimentalOption("debuggerAddress", remoteDebuggingAddress);
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

LoggingPreferences logs = new LoggingPreferences();
logs.enable(LogType.BROWSER, Level.ALL);
capabilities.setCapability(CapabilityType.LOGGING_PREFS, logs);

jxDriver = new RemoteWebDriver(new URL("http://" + add + ":5555" + "/wd/hub"), capabilities);
return jxDriver;

我在端口 5555 上运行集线器,在机器机器上运行节点。 chromeDriver 在路径 envVar 中,我在 cmd 窗口中看到发送了连接请求。 结果是一样的。

谁能告诉我我在这里做错了什么? 这种远程 jxbroswer 自动化可以实现吗?

编辑: 当我在远程机器上初始化 Chrome 会话时,它按预期工作(使用 selenium 网格)但是当我添加时

options.setExperimentalOption("debuggerAddress", remoteDebuggingAddress);

它失败并出现同样的错误。

【问题讨论】:

  • 你设置远程机器的chrome驱动位置了吗?
  • 正如我所提到的,chrome 驱动程序位于远程机器上的 PATH 和网格节点输出中,我可以看到他正在启动 chromeDriver,但无法连接

标签: java selenium javafx automation jxbrowser


【解决方案1】:

此错误消息...

unknown error: cannot connect to chrome at 192.168.2.147:9222 from chrome not reachable

...暗示 ChromeDriver 无法启动/生成新的浏览上下文,即 Chrome 浏览器 会话。

您的主要问题是您使用的二进制文件版本之间的不兼容

Selenium 驱动WebDriver 控制 而言,您关注的是正确的documentation

然而,在这个discussion@SerhiiFedchenko 中提到,这种特殊的方法是用 Selenium WebDriver 2.46ChromeDriver 2.16 测试的。 JxBrowser 未使用旧版/新版 Selenium WebDriver 和 ChromeDriver 进行测试。


解决方案

一种可能的解决方案是使用经过测试的二进制文件版本执行测试:

  • Selenium WebDriver 2.46
  • ChromeDriver 2.16

【讨论】:

  • 感谢您的详细回答,但我们的应用程序使用的是 chromium 69.x.x 并且不支持 ChromeDriver 2.16。我检查的另一件事是启动常规 chrome 浏览器,而我可以在远程机器上启动 chrome 浏览器浏览器,如果我将“debuggerAddress”添加到 chromeOptions,它会失败,所以我猜问题出在这个标志的某个地方.
【解决方案2】:

所以我能够找到解决方案,问题是我发送到“debuggerAddress”的 IP。 当我发送远程机器 IP 时,我应该使用“localhost”,因为已经使用 selenium 网格建立了连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多