在执行以下代码时,我看不到结果,但是在调试时,我可以执行以下代码

时间:2020-07-06 16:35:03

标签: java selenium selenium-webdriver

下面的硒代码有什么问题?

在控制台中,我看不到任何错误或异常。执行下面的代码后,我可以打印0,1,2,但不能打印3和4。

@Test(priority = 9, retryAnalyzer = com.brcc.tool.RetryFailedTestCases.RetryTestCases.class)
public void findSearchable() throws InterruptedException {
    
    wait = new WebDriverWait(driver, 40);
    System.out.println("0");
    List<WebElement> searchableElements = driver
            .findElements(By.cssSelector(prop.getProperty("searchableElements")));
    System.out.println("1");
    List<String> searchable = new ArrayList<String>();

    System.out.println("2");
    
    for (WebElement searchableElement : searchableElements) {
        System.out.println("3");
        searchable.add(searchableElement.getText());

        System.out.println("searchable  =  " + searchable);
        System.out.println("Size of list = " + searchable.size());
    }
    System.out.println("searchableList  =  " + searchable);

    for (int i = 0; i < searchable.size() - 1; i++) {
        System.out.println("4");

        if ((searchable.get(i).contains(sftpCon.searchableFields("Searchable Fields", 0))) && (searchable.get(i).contains(sftpCon.searchableFields("Searchable Fields", 1)))
                && (searchable.get(i).contains(sftpCon.searchableFields("Searchable Fields", 2))) && (searchable.get(i).contains(sftpCon.searchableFields("Searchable Fields", 3)))) {
            System.out.println("Got it ...... = " + searchable.get(i));
        } else {
            System.out.println("Not Found");
        }
    }
}

2 个答案:

答案 0 :(得分:0)

如果在调试模式下而不是在正常执行模式下运行脚本时看到值,那么请确保在获取searchableElements之前已加载元素。

更改下面的行

List<WebElement> searchableElements = driver
            .findElements(By.cssSelector(prop.getProperty("searchableElements")));

使用webdriverwait

List<WebElement> searchableElements = new WebDriverWait(driver, maxTimeOut))
                .until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector(prop.getProperty("searchableElements")))
//print the size here
System.out.println("Number of list items:-" + searchableElements.size());

答案 1 :(得分:0)

  1. 使用以下代码后,现在我的问题已解决

    driver.manage()。timeouts()。implicitlyWait(10,TimeUnit.SECONDS); 列出searchableElements = driver.findElements(By.cssSelector(prop.getProperty(“ searchableElements”)));