Java: пытается получить значение элемента HTML - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь извлечь значение элемента таблицы HTML с веб-сайта и сравнить его со значением, введенным пользователем, но кажется, что при запуске программы вложенный цикл не вводится. Он работает без ошибок, но я не получаю вывод от Eclipse, я новичок в Selenium Java и все еще учусь.

См. Мой код ниже:

String inputString = basePrem;
try {

    //Print to console the value of Base Prem
    WebElement table = driver.findElement(By.xpath(".//td[text()='Base Premium']/following-sibling::*"));
    List<WebElement> allrows = table.findElements(By.tagName("tr"));
    List<WebElement> allcols = table.findElements(By.tagName("td"));    

    for (WebElement row: allrows) {
        List<WebElement> Cells = row.findElements(By.tagName("td"));
            for (WebElement Cell:Cells) {
                if (Cell.getText().contains(basePrem)) {
                    System.out.print("Base Premium = "+ basePrem + "   ");
                }
                else if (!Cell.getText().contains(basePrem))
                {
                    System.out.print("Base Premium = " + basePrem + " ");
                    break;
                }
            }
        }
    }
catch (Exception e) {
    errorMessage = "Value discrepancy";
    System.out.println(errorMessage + " - " + e.getMessage());
    driver.close();
}

Кроме того, inputString - это то место, где я ввожу значение, которое я использую для сравнения (для тестирования я использую отдельный файл excel)

Поскольку элемент управления не входит во вложенный цикл, возможно, у меня возникла логическая ошибка?

1 Ответ

0 голосов
/ 27 июня 2018

Вы можете переписать код, как показано ниже, а затем проверить, доступна ли ваша входная строка в таблице. Не обязательно использовать вложенные для циклов

Код:

    String inputString = basePrem;

    WebElement table = driver.findElement(By.xpath(".//table"));
    //Extract all the Cell Data Element
    List<WebElement> dataElementList=table.findElements(By.xpath(".//td"));

    for(WebElement dataElement : dataElementList){

        if(dataElement.getText().contains(inputString)){
            System.out.print("Base Premium = "+ basePrem + "   ");
            break;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...