如果测试的应用程序在80以外的端口上运行,则Selenium拒绝连接

Gil*_*ere 10 selenium

我正在使用selenium服务器.它适用于测试在端口80上运行的应用程序.

但是,如果我测试在80以外的其他端口上运行的应用程序,例如5001,则拒绝连接.

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities;        
br = webdriver.Remote(command_executor="http://localhost:4444/wd/hub", desired_capabilities=DesiredCapabilities.CHROME)
br.get("http://127.0.0.1:5001/login/")
br.get_screenshot_as_file("/tmp/test.png")
Run Code Online (Sandbox Code Playgroud)

我得到以下截图: 在此输入图像描述

如何在端口5001上进行测试?

编辑

我使用docker-compose运行Selenium服务器作为Docker容器:

version: '2'

services:
  selenium:
    image: selenium/standalone-chrome:latest
    ports:
      - 4444:4444
Run Code Online (Sandbox Code Playgroud)

小智 3

您正在 Docker 容器内运行 Selenium。如果您尝试连接到本地主机,它会指向 Docker 容器本身。

您必须像此处描述的那样连接到您的主机:How to access host port from docker container

使用您的内部 IP 地址或连接到特殊的 DNS 名称,host.docker.internal该名称将解析为主机使用的内部 IP 地址。