【问题标题】:Force selenium-webdriver to bind to localhost强制 selenium-webdriver 绑定到 localhost
【发布时间】:2019-09-29 15:02:08
【问题描述】:

当使用selenium-webdriver 时,某些东西会尝试绑定到一个端口,监听来自未指定 IPv6/IPv4 主机 (:: / 0.0.0.0) 的连接。这会触发防火墙消息。

我想通过强制它仅绑定到localhost 来避免此防火墙消息,但我找不到有关此服务器是什么或如何配置它的任何线索。

复制问题的示例代码:

const webdriver = require('selenium-webdriver');
const driver = new webdriver.Builder().forBrowser('chrome').build();
setTimeout(() => {
  driver.quit();
}, 10000);

在 macOS 上,这会显示提示:

您希望应用程序“节点”接受传入的网络连接吗?

显然选择“拒绝”仍然允许测试运行(因为无论如何一切都是本地的),并且在选择此选项后,操作系统会记住选择,直到节点更新,但我想锁定测试以便这不是问题。

这是什么原因造成的?如何配置?

【问题讨论】:

    标签: node.js selenium-webdriver


    【解决方案1】:

    您可以使用Selenium Standalone Serverbind it to a specific IP address。此外,您可以disable IPv6 addresses lookup

    1. 启动 Selenium 独立服务器,例如:

      java -Djava.net.preferIPv4Stack=true -jar selenium-server-standalone-x.xx.x.jar -host 10.20.30.40
      
    2. 修改你的 webdriver 初始化代码以显式设置 Selenium 服务器地址,如:

      const driver = new webdriver.Builder().forBrowser('chrome').usingServer('http://10.20.30.40:4444/wd/hub').build();
      

      将此10.20.30.40 替换为您选择的 IP 地址(该 IP 地址或别名必须存在于您运行测试的系统上)

    参考资料:

    【讨论】:

    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2012-01-05
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多