如何在selenium 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 使用它

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']")来选择。

最新更新