繁体   English   中英

如何简化这个Selenium / java代码以使其正常工作?

[英]How can I simplify this selenium / java code to get it working?

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

基本上,它进入页面并检查是否找到了不同的元素,然后将一些数据输入到字段中。

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

有人可以帮我解决这个问题吗? 我需要它,所以如果它在页面上找到文本to_date,它将使用to_date参数;如果找到文本To date,它将使用endDateParam;如果找到文本To date AND to_date,它将使用找到的任何参数。

我尝试添加一个尝试捕获,捕获时不执行任何操作,但仍然失败。

        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();
            }
}

可以使用不同参数调用的函数怎么样:

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();
            }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM