如何访问在 EC2 实例上运行的 Selenium Hub?[已结束]

How can i access Selenium Hub that is running on the EC2 Instance? [closed]

提问人:Jun 提问时间:11/15/2023 最后编辑:Jun 更新时间:11/16/2023 访问量:36

问:


这个问题似乎不是关于特定的编程问题、软件算法或程序员主要使用的软件工具。如果您认为该问题在另一个 Stack Exchange 站点上是主题,您可以发表评论以解释该问题可能在哪里得到回答。

8天前关闭。

目的

我的目的是使用 Python 的 Webdriver.remote 访问 selenium hub。

我做了什么

  1. 我创建了一个包含 2 个公有子网和 2 个私有子网的新 VPC。
  2. 我创建了一个新的 EC2 实例到公有子网。(Ubuntu Linux 22.04 版本)此 EC2 实例具有一个公有 EIP,如 111.111.111.111(仅举例)和安全组,该安全组向具有所有 ipv4 地址的 4444、4443、4442、5555 端口开放。
  3. 我用这个docker-compose文件运行了selenium-hub。
version: "3"
services:
  chrome:
    image: selenium/node-chrome:4.15.0-20231110
    shm_size: 2gb
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443

  edge:
    image: selenium/node-edge:4.15.0-20231110
    shm_size: 2gb
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443

  firefox:
    image: selenium/node-firefox:4.15.0-20231110
    shm_size: 2gb
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443

  selenium-hub:
    image: selenium/hub:4.15.0-20231110
    container_name: selenium-hub
    ports:
      - "4442:4442"
      - "4443:4443"
      - "4444:4444"
  1. 我用这个 docker 语句运行docker-compose.yml文件上面。docker-compose -f docker-compose-v3.yml up -d
  2. 我试图用这个 python 代码访问那个 selenium 中心。(我尝试了这些网址,,,http://111.111.111.111:4444/wd/hubhttp://111.111.111.111:4444111.111.111.111:4444/wd/hub111.111.111.111:4444)
from selenium import webdriver


def test_start_remote(server):
    options = webdriver.ChromeOptions()
    options.add_argument('headless')
    options.add_argument('--no-sandbox')

    driver = webdriver.Remote(command_executor=server, options=options)
    driver.get("https://www.google.com")
    print(driver.title)
    driver.close()


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    test_start_remote("http://{URL~~}/wd/hub")

问题

它没有返回响应

urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPConnection object at 0x0000022832B30850>, 'Connection to {AWS LOAD BALANCER DNS}.ap-northeast-2.elb.amazonaws.com timed out. (connect timeout=None)')

我检查了什么

  1. 我在本地电脑中运行了相同的docker-compose文件,并成功连接了这个网址http://localhost:4444/wd/hub
  2. 在 ec2 实例上,我检查了 selenium-hub 容器的日志,并检查了所有浏览器节点是否都在中心注册。

我的问题的解决方案是什么??

请帮帮我

docker selenium-webdriver amazon-ec2

评论


答: 暂无答案