Как проверить переключатель с помощью Selenium WebDriver Чтение данных из Excel - PullRequest
0 голосов
/ 31 мая 2018

Я использую Coded UI для создания тестовых случаев для веб-приложения, но при этом я столкнулся с проблемой.Я не могу выбрать переключатель с помощью отображаемого текста, однако если я использую ValueAttribute, то он работает нормально.Но, поскольку атрибут value не содержит числа, которое может не иметь никакого логического смысла для человека, создающего тестовые данные, поэтому мне нужно выполнить ту же работу, используя отображаемый текст переключателя.

Вот мойHTML-код

<td><input id="ContentPlaceHolder1_rbl_NewChanged_0" type="radio" name="ctl00$ContentPlaceHolder1$rbl_NewChanged" value="1131">
    <label for="ContentPlaceHolder1_rbl_NewChanged_0">New</label></td>
    <td><input id="ContentPlaceHolder1_rbl_NewChanged_1" type="radio" name="ctl00$ContentPlaceHolder1$rbl_NewChanged" value="1132">
    <label for="ContentPlaceHolder1_rbl_NewChanged_1">Changed</label></td>
    <td><input id="ContentPlaceHolder1_rbl_NewChanged_2" type="radio" name="ctl00$ContentPlaceHolder1$rbl_NewChanged" value="1133">
    <label for="ContentPlaceHolder1_rbl_NewChanged_2">Longstanding</label></td>

Я пробовал следующий код.но не сработало

 String selectType = data.getType().get(rowCnt);// data reading from excel stored to string variable
                List<WebElement> type = driver.findElements(By.xpath("//input[@type='radio']"));
                for (int i = 0; i < type.size(); i++) {
                    if (type.get(i).getText().equals(selectType)) {
                        type.get(i).click();
                    }
                }

1 Ответ

0 голосов
/ 31 мая 2018

Если вы получаете значения String, относящиеся к тексту тегов <label>, например, New, Changed, Longstanding.и т.д. из Excel, тогда вы можете написать функцию, которая будет принимать тексты как String следующим образом:

public void clickItem(String itemText)
{
    driver.findElement(By.xpath("//td//label[starts-with(@for,'ContentPlaceHolder1_rbl_NewChanged_')][.='" + itemText + "']")).click();
}

Теперь вы можете вызвать функцию clickItem(), передав аргумент String, чтобы нажать нарелевантный переключатель следующим образом:

String selectType = data.getType().get(rowCnt); // data reading from excel stored to string variable
clickItem(selectType); // will support clickItem("New"), clickItem("Changed") and clickItem("Longstanding")

Примечание : согласно предоставленному вами HTML методу clickItem() следует работать среализованная стратегия Locator .В качестве альтернативы вы также можете заменить функцию clickItem(), чтобы щелкнуть узел <input> следующим образом:

public void clickItem(String itemText)
{
    driver.findElement(By.xpath("//td//label[.='" + itemText + "']//preceding::input[1]")).click();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...