【问题标题】:password protection using selenium grid and remote nodes使用 selenium 网格和远程节点的密码保护
【发布时间】:2017-04-13 23:08:54
【问题描述】:

在远程节点上使用 selenium 网格时,如何在节点上执行命令而不在网格和节点之间明文传递信息?我访问我正在测试的站点使用 https,因此节点和站点之间的通信是安全的,但是集线器和节点之间呢?有什么办法可以保证吗?有没有人在集线器和节点上都尝试过端口转发?

【问题讨论】:

    标签: selenium-webdriver selenium-grid


    【解决方案1】:

    我没有亲自做过,但this 链接可能会对你有所帮助。

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

    【讨论】:

      【解决方案2】:

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

      • 在远程机器上生成一个 rsa 密钥,并将 id_rsa.pub 放在运行网格的本地机器上的 ~/.ssh/authorized_keys 中,确保您已正确设置文件/目录权限
      • 确保您的本地机器有一个固定的 IP,我使用了 AirPort 实用程序,在网络选项,DHCP 保留下。 (有关如何执行此操作的信息通常很容易在网络上搜索到)
      • 在本地路由器上打开端口 22。我使用机场实用程序、网络选项、端口设置来完成此操作。此时,您应该能够成功地从远程机器 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到远程机器。设置起来有点麻烦,但是一旦完成,您可以启动一个脚本来启动集线器和任意数量的节点。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-19
        • 2015-09-20
        • 1970-01-01
        • 2017-12-02
        • 2014-05-24
        • 2012-03-11
        相关资源
        最近更新 更多