Как выбрать радиокнопку через аннотацию @FindBy в selenium webdriver

При разработке класса объекта страницы мы используем @FindBy(name="value"), т.е. FindBy с именем.

SO ниже кода, чтобы найти текстовое поле веб-страницы, например поле имени пользователя. @FindBy(name="username")

WebElement txtboxUname;

........//Внутри тестовой функции мы называем это txtboxUname, как показано ниже

txtboxuname.sendKeys("purnendu");

Итак, для объекта страницы переключателя, как мы определяем его через @FindBy??? Следующий код не работает

@FindBy(name="radio")

List<WebElement> radioBtnSelectTrip;

.......вызов внутренней функции

radioBtnSelectTrip.get(0).click();

Вышеупомянутый метод @FindBy не работает для переключателя. Помогите, пожалуйста, как определить от radiobutton до @FindBy и использовать его через Pagefactory


person purnendusekkhar rath    schedule 23.02.2015    source источник


Ответы (2)


Существует несколько методов UI отображения. При использовании @FindBy для сопоставления UI элементов можно сопоставить элемент с xpath. Однако вы хотите убедиться, что xpath правильный и возвращает только цель radio. См. пример того, как найти элемент с помощью xpath здесь

Узнайте больше о Annotation Type FindBy здесь

И,

@FindBy(name="radio")

List<WebElement> radioBtnSelectTrip;

не вернет вам ОДНО радио, а список. Для выполнения действия на конкретном радио необходимо добавить дополнительный фильтр. Например, условие asif соответствует уникальному критерию целевого переключателя.

Изменить Добавлен код для изучения того, как FindBy можно реализовать при поиске определенного радио.

@FindBy(how = How.CSS, using = "[type='radio'][value='roundtrip']")
public WebElement roundTrip;

@FindBy(how = How.CSS, using = "[type='radio'][value='oneway']")
public WebElement oneWay;
person Saifur    schedule 23.02.2015
comment
@FindBy может вернуть List: selenium.googlecode.com/git/docs/api/java/index.html?org/openqa/ - person SiKing; 23.02.2015
comment
@SiKing Я тоже говорю да. - person Saifur; 23.02.2015
comment
ОП также указал, что он звонит radioBtnSelectTrip.get(0).click();. Поэтому я не понимаю вашего дополнительного комментария к фильтру. - person SiKing; 23.02.2015
comment
@SiKing Вы спрашиваете меня о двух разных вещах. Вы знаете, что radioBtnSelectTrip.get(0).click(); не обязательно вернет элемент target, который может понадобиться OP. Вот что я имел в виду, добавляя such as if condition to match a unique criteria on the target radio button, и я никогда не говорил, что @FindBy не вернет List - person Saifur; 23.02.2015

У вас опечатка. Если вы хотите вернуть переключатель, вы, вероятно, захотите выбрать его type: @FindBy(xpath="//input[@type='radio']").

person SiKing    schedule 23.02.2015
comment
Большое спасибо saifur и Siking за быстрый ответ. - person purnendusekkhar rath; 24.02.2015
comment
‹td width=67%› ‹b› ‹размер шрифта=2 начертание=Arial, Helvetica, sans-serif› ‹тип ввода=радио проверено= значение=туда-обратно имя=tripType/› Туда-обратно ‹тип ввода=радио значение=oneway name=tripType/› В одну сторону ‹/font› ‹/b› ‹/td› - person purnendusekkhar rath; 24.02.2015
comment
выше приведено HTML-описание переключателя на моей странице. Итак, как я могу определить через @FIndBy и как я могу получить доступ к переключателю в моем тесте, пожалуйста, предоставьте мне код. - person purnendusekkhar rath; 24.02.2015
comment
@purnendusekkharrath Если вам нужно уточнить свой вопрос, не пишите его в комментариях. Отредактируйте исходный вопрос! - person SiKing; 24.02.2015