0

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

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

WebElement txtboxUname;

........//在 testfunction 内部我们这样称呼txtboxUname

txtboxuname.sendKeys("purnendu");

那么对于单选按钮页面对象,我们如何通过@FindBy??? 以下代码不起作用

@FindBy(name="radio")

List<WebElement> radioBtnSelectTrip;

.......调用内部函数

radioBtnSelectTrip.get(0).click();

上述@FindBy技术不适用于单选按钮。请您帮助如何通过 Pagefactory 定义radiobutton@FindBy使用它

4

2 回答 2

2

有几种UI映射技术。在使用@FindBy映射UI元素时,可以使用xpath. 但是,您要确保xpath是正确的并且只返回 target radio。查看如何在xpath 此处查找元素的示例

探索更多关于Annotation Type FindBy 这里

和,

@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;
于 2015-02-23T17:40:20.883 回答
0

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

于 2015-02-23T18:19:49.537 回答