在设计页面对象类时,我们使用名称为@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
答案 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']")
。