在设计页面对象类时,我们使用@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 使用它
UI
映射有几种技术。当使用@FindBy
来映射UI
元素时,可以将该元素映射为xpath
。但是,您需要确保xpath
是正确的,并且只返回目标radio
。请参阅如何在中查找xpath
元素的示例
点击此处了解有关Annotation Type FindBy
的更多信息
而且,
@FindBy(name="radio")
List<WebElement> radioBtnSelectTrip;
不会给你一个收音机,而是一个列表。要对特定的收音机执行操作,您需要添加额外的筛选器。例如CCD_ 20条件以匹配目标单选按钮上的唯一标准。
编辑添加代码,探索如何在查找特定无线电时实现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;
您有一个打字错误。如果你想返回一个单选按钮,你可能想通过它的type
:@FindBy(xpath="//input[@type='radio']")
来选择。