Selenium Grid 未检测到 Docker yaml 文件中的集成

问题描述 投票:0回答:1

我正在尝试为我的投资组合构建一个自动化测试项目。但我面临着同样的问题。我创建了一个 Docker YAML 文件来编写配置以在 chrome 和 firefox 浏览器上运行执行。下面是YAML文件的截图

我还创建了一个类,用于根据 POM 文件调用执行,我将其称为抽象测试文件。

public abstract class AbstractTest {
    protected WebDriver driver;

    @BeforeTest
    public void setDriver() {
        if(Boolean.getBoolean("selenium.grid.enabled"))
        {
            try {
                this.driver = getRemoteDriver();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
        } else {
            this.driver = getLocalDriver();
        }
    }

    @SuppressWarnings("deprecation")
    private WebDriver getRemoteDriver() throws MalformedURLException {
        Capabilities capabilities;
        if(System.getProperty("browser").equalsIgnoreCase("chrome"))
        {
            capabilities = new ChromeOptions();
        } else {
            capabilities = new FirefoxOptions();
        }
        return new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
    }

    private WebDriver getLocalDriver() {
        WebDriverManager.chromedriver().setup();
        return new ChromeDriver();
    }

    @AfterTest
    public void quitDriver() {
        this.driver.quit();
    }
}

即使在 POM.xml 文件中将 selenium.grid.enabled 传递为 TRUE 之后,我的执行仍在本地运行。我已附上 POM.xml 屏幕截图。

selenium 网格中没有任何运行。 有谁可以帮忙吗?

java docker selenium-webdriver devops automation-testing
1个回答
0
投票
  1. 检查 Selenium Grid Hub 和节点设置:

    • 确保您已启动 Selenium Grid Hub。您可以使用以下命令启动它:
      java -jar selenium-server-standalone-<version>.jar -role hub
      
    • 确保 Selenium 网格节点正在运行。你可以这样开始:
      java -Dwebdriver.chrome.driver=<path_to_chromedriver> -jar selenium-server-standalone-<version>.jar -role node -hub http://localhost:4444/grid/register
      
      注意:使用 ChromeDriver 可执行文件的实际路径调整
      <path_to_chromedriver>
  2. 检查 Docker 配置:

    • 确保适用于 Chrome 和 Firefox 的 Docker 容器已正确配置并运行。仔细检查 Docker Compose 文件以确保提供了必要的配置。
  3. 验证POM配置:

    • 确认您已在 POM.xml 文件中将
      selenium.grid.enabled
      属性设置为
      true
      。确保在您的
      AbstractTest
      类中正确读取该属性。
      <properties>
          <selenium.grid.enabled>true</selenium.grid.enabled>
      </properties>
      
  4. 检查POM中的浏览器属性:

    • 验证您是否在 POM.xml 文件中传递了正确的浏览器属性。确保它符合您的
      AbstractTest
      课程中的条件。
      <properties>
          <browser>chrome</browser>
      </properties>
      
  5. 记录和调试:

    • 在您的
      AbstractTest
      类中添加一些日志语句以打印属性的值并检查它们是否设置正确。
    • 使用调试工具检查代码流程,看看它在哪里可能偏离您的期望。
  6. 网络配置:

    • 确保不存在阻止 Selenium Grid Hub、Node 和 Docker 容器之间通信的防火墙或网络问题。
© www.soinside.com 2019 - 2024. All rights reserved.