通过调用定义WebElement路径的方法在JUnit @Test中选择WebElement

时间:2019-05-21 18:50:48

标签: java selenium-webdriver junit

我正在Selenium中创建一个Junit测试,该测试调用一种方法,该方法定义了在自动化过程中需要选择的WebElement。

运行Junit测试时,它只会启动浏览器,转到网页,而不选择WebElement。在Selenium中作为常规Java应用程序运行时,此方法确实起作用。

@Test
public void downTimeTestCase() {
    System.out.println("Running test 'Down Time'");
    defineWebElements();

    downTime.click();
    dateSelector.click();
}

public void defineWebElements() {
    downTime = driver.findElement(By.xpath("//*.   [@id=\"root\"]/div/div/div[2]/ul/li[1]/a"));
    uph = driver.findElement(By.xpath("//*[@id=\"root\"]/div/div/div[2]/ul/li[2]/a"));

}

我希望测试通过xpath选择网页WebElements,但是启动了网页却没有任何反应。没有选择任何WebElement。

1 个答案:

答案 0 :(得分:-1)

我看不到你的意思,但这应该可行:

@Test
public void downTimeTestCase() {
    System.out.println("Running test 'Down Time'");
    defineWebElements().get(0).click();
    defineWebElements().get(1).click();

}

public List<WebElement> defineWebElements() {
    WebElement downTime = driver.findElement(By.xpath("//*.   [@id=\"root\"]/div/div/div[2]/ul/li[1]/a"));
    WebElement uph = driver.findElement(By.xpath("//*[@id=\"root\"]/div/div/div[2]/ul/li[2]/a"));
    List<WebElement> elements = new ArrayList<WebElement>();
    elements.add(downTime);
    elements.add(uph);
    return elements;
}

@Test
public void downTimeTestCase() {
    System.out.println("Running test 'Down Time'");
    defineWebElements();
}

public void defineAndClickWebElements() {
    WebElement downTime = driver.findElement(By.xpath("//*.   [@id=\"root\"]/div/div/div[2]/ul/li[1]/a"));
    WebElement uph = driver.findElement(By.xpath("//*[@id=\"root\"]/div/div/div[2]/ul/li[2]/a"));
    downTime.click();
    uph.click();
}