迫使硒 - 韦布驱动器与局部主机结合



使用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上,这显示了提示:

您是否希望应用程序"节点"接受传入的网络连接?

显然选择" deny"仍然允许测试运行(无论如何,由于一切都是局部的(,在选择此选项后,操作系统会记住选择,直到更新节点,但我想锁定测试这不是问题。

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

您可以使用硒独立服务器并将其绑定到特定的IP地址。此外,您可以禁用IPv6地址查找。

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

    java -Djava.net.preferIPv4Stack=true -jar selenium-server-standalone-x.xx.x.jar -host 10.20.30.40
    
  2. 修改您的WebDriver初始化代码,以明确设置Selenium Server地址:

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

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

参考:

  • 与JavaScript的Selenium-独立的Selenium Server
  • 将硒枢纽连接到云服务器

最新更新