如何在selenium webdriver中通过@FindBy注释选择单选按钮

时间:2015-02-23 17:37:49

标签: selenium selenium-webdriver webdriver findby

在设计页面对象类时,我们使用名称为@FindBy(name="value"),即 FindBy

以下代码可以找到网页的文本框,例如用户名字段。 @FindBy(name="username")

WebElement txtboxUname;

........ //在测试功能内部,我们称之为txtboxUname,如下所示

txtboxuname.sendKeys("purnendu");

那么对于单选按钮页面对象我们如何通过@FindBy来定义它? 以下代码无效

@FindBy(name="radio")

List<WebElement> radioBtnSelectTrip;

.......调用内部功能

radioBtnSelectTrip.get(0).click();

以上@FindBy技术不适用于单选按钮。您可以帮助如何定义radiobutton@FindBy并通过Pagefactory

使用它

2 个答案:

答案 0 :(得分:2)

UI映射有几种技术。使用@FindBy映射UI元素时,可以使用xpath映射元素。但是,您要确保xpath正确并且只返回目标radio。请参阅如何使用xpath here

查找元素的示例

详细了解Annotation Type FindBy here

而且,

@FindBy(name="radio")

List<WebElement> radioBtnSelectTrip;

不会返回一个收音机而是一个列表。要对特定无线电执行操作,您需要添加其他过滤器。例如if条件,以匹配目标单选按钮上的唯一条件。

修改添加了代码,以探索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;

答案 1 :(得分:0)

你有一个错字。如果您想要返回一个单选按钮,您可能希望选择type@FindBy(xpath="//input[@type='radio']")