如何简化这个selenium / java代码才能使其正常工作?

时间:2013-06-28 07:55:16

标签: java if-statement selenium selenium-webdriver

有人可以帮助我使用selenium webdriver测试中使用的以下Java代码吗?我知道可能有更好的方法可以做到这一点,但在我接手之前工作的前一个人就是在工作中学习。

基本上它会到达页面并检查不同的元素,如果它发现它们将某些数据输入到字段中。

问题是这个代码针对不同的站点运行,现在有一个问题,其中一个页面上的文本To date和to_date都在页面上,因此测试失败,因为它找到了一个元素endDateParam但没有元素TO_DATE。

有人可以帮我解决这个问题吗?我需要它,所以如果它在页面上找到文本to_date它将使用to_date参数,如果它找到文本到目前为止它将使用endDateParam并且如果它找到文本To date AND to_date它将使用它找到的哪个参数

我尝试添加一个try catch,它在捕获时什么都不做但仍然失败。

        if (PWSHelper.verifyTextPresent("To date", driver))
        {
            try {
                 WebElement toDate = driver.findElement(By.name("endDateParam"));
                 toDate.sendKeys(boHelper.nextWeek());
                } catch (NoSuchElementException ex)
                {
                    System.out.println("endDateParam Not Found");
                    System.out.println();
                }
        }


        if (PWSHelper.verifyTextPresent("to_date", driver))
        {
            try {
             WebElement toDate = driver.findElement(By.name("to_date"));
             toDate.sendKeys(boHelper.nextWeek());
            } catch (NoSuchElementException ex)
            {
                System.out.println("to_date Not Found");
                System.out.println();
            }
}

1 个答案:

答案 0 :(得分:0)

如何使用不同的参数调用函数:

private void doSomething(String textToFind, String target)
 if (PWSHelper.verifyTextPresent(textToFind, driver))
        {
            try {
             WebElement toDate = driver.findElement(By.name(target));
             toDate.sendKeys(boHelper.nextWeek());
            } catch (NoSuchElementException ex)
            {
                System.out.println(textToFind + " Not Found");
                System.out.println();
            }
}