我已将文件和项目上载到GitLab,并且尝试使用CI / CD运行器执行该文件和项目,但它始终冻结或崩溃。它在本地完美运行,但是当我将ChromeDriver更改为RemoteDriver时,它在第三页或第四页上开始崩溃。 我尝试过:
.gitlab-ci.yml:
before_script:
- "apt-get update"
- "export DISPLAY=:1"
image: "docker:latest"
maven-build:
image: "maven:latest"
script: "mvn test"
stage: build
services:
- "docker:dind"
- "selenium/standalone-chrome:latest"
stages:
- build
- test
硒测试:
public class Base {
public WebDriver driver;
public WebDriver inializeDriver() throws IOException {
String baseDir = new File(".").getPath();
String path = "selenium-chrome-work/chromedriver";
System.setProperty("webdriver.chrome.driver", path);
ChromeOptions capabilities = new ChromeOptions();
capabilities.setCapability("marionette", true);
capabilities.setCapability("networkConnectionEnabled", true);
capabilities.setCapability("browserConnectionEnabled", true);
WebDriver driver = new RemoteWebDriver(
new URL("http://selenium__standalone-chrome:4444/wd/hub/"),
capabilities);
String path1 = System.getProperty("user.dir");
driver.get("file:///" + path1 + "\\seleniumproject\\story_html5.html?lms=1");
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
return driver;
}
}
public class AppDemoTest extends Base {
WebDriver driver;
@BeforeTest
public void BasePageNavigation() throws IOException, InterruptedException {
// Initialize driver
driver = inializeDriver();
}
@Test(priority = 1)
public void pageOne() {
// Navigate to first page
driver.findElement(By.className("cs-button")).click();
}
@Test(priority = 2)
public void pageTwo() {
// Navigate to second page
driver.findElement(By.xpath("//*[@id='uniqueDomId-2906']")).click();
}
@Test(priority = 3)
public void pageThree() {
// Check box, click OK and navigate to fourth page
driver.findElements(By.cssSelector("[role='checkbox']")).get(0).click();
driver.findElement(By.cssSelector("[data-commandset-id='204']")).click();
driver.findElement(By.cssSelector("[data-commandset-id='213']")).click();
}
@Test(priority = 4)
public void pageFour() {
// Check box, click OK and navigate to fifth page
driver.findElements(By.cssSelector("[role='checkbox']")).get(0).click();
driver.findElement(By.cssSelector("[data-commandset-id='204']")).click();
driver.findElement(By.cssSelector("[data-commandset-id='213']")).click();
}
}