使用selenium网格和远程节点进行密码保护

时间:2016-11-29 19:51:32

标签: selenium-webdriver selenium-grid

当使用具有远程节点的selenium网格时,如何在节点上执行表彰而不在网格和节点之间清除信息?我访问我正在测试的网站使用https,因此节点和网站之间的通信是安全的,但是集线器和节点之间呢?有没有办法确保这一点?有人在集线器和节点上尝试过端口转发吗?

2 个答案:

答案 0 :(得分:0)

我个人没有这样做,但this链接可能对您有帮助。

对于登录网站,我经常尝试通过API登录,然后将cookie插入到驱动程序会话中,因此不需要通过Selenium登录。

答案 1 :(得分:0)

谢谢。在这个链接的帮助和一点点的修补,我得到了它的工作。如果它有助于某人,这基本上就是我所做的。这是我在我的本地机器(在家里)运行网格的情况,我在远程笔记本电脑上运行节点。

  • 在远程计算机上生成一个rsa密钥,并将id_rsa.pub放在运行网格的本地计算机上的〜/ .ssh / authorized_keys中,确保正确设置文件/目录权限
  • 确保您的本地计算机上有固定IP,我使用AirPort实用工具,在网络选项下,DHCP预留。 (关于如何做到这一点的信息通常很容易通过网络搜索)
  • 在本地路由器上打开端口22。我是使用Airport Utility,网络选项,端口设置完成的。此时,您应该能够成功地从远程计算机ssh到本地计算机,而无需使用密码。
  • 在远程计算机上启动端口转发,类似这样。 ssh -N -L 4444:$ {HUB_IP}:4444 $ {USER_NAME} @ $ {HUB_IP}。现在,发送到远程计算机上的端口4444的所有数据将被安全地发送到本地计算机上的端口4444(这假设您的网格设置在4444上)
  • 使用端口4444
  • 在本地计算机上启动网格
  • 使用集线器设置-hub http://localhost:4444/grid/register -port {whatever_you_want_for_driver_but_not_4444}
  • 启动远程计算机上的节点

我将此全部放入从本地计算机运行的脚本中,它调用远程计算机上的脚本,因此您还需要能够从本地计算机ssh到远程计算机。设置它有点麻烦,但一旦完成,你可以启动一个脚本来启动集线器和任意数量的节点。

我认为现在我可以在集线器和节点之间安全地传递信息。