selenuim-webdriver注解之@FindBy、@FindBys、@FindAll的区别

selenium-webdriver中获取页面元素的方式有很多,使用注解获取页面元素是其中一种途径,

方式有3种:@FindBy、@FindBys、@FindAll。下文对3中类型的区别和使用场景进行介绍

1)@FindBy

@FindBy(id= "A")
private WebElement A;


2)@FindBys

@Findbys({
    @FindBy(className = "A"),
    @FindBy(className = "B")
})
public WebElement AB;

 @FindBys 相当于是取交集,是先根据第一个注解获取到对应元素,然后根据第二个注解再帅选出对应的页面元素,。如先找到符合classname=A的元素,再在这些元素集中找到classname=B的所有元素

就像如下操作:

driver.findElement(<By_FindByA>).findElement(<By_FindByB>).


3)@FindAll

@FindAll({
    @FindBy(id = "A"),
    @FindBy(id = "B")
})
public List<WebElement> aAndB;

@FindAll相当于是取并集,如找到id=A和id=B的所有元素



例:

public class API_BatchSettlementIndexPage {
protected WebDriver dr = null;


/**
* username
*/
@FindBy(name = "username")
protected WebElement input_username;


/**
* password
*/
@FindBy(name = "password")
protected WebElement input_password;


/**
* submit
*/
@FindBy(xpath = "//input[@type='submit']")
protected WebElement button_submit;


public API_BatchSettlementIndexPage(WebDriver dr) {
this.dr = dr;
this.load();
PageFactory.initElements(dr, this);

}

/**
* 加载
*/
protected void load() {
dr.get(Environment.get("fo.mock.batch.settlement.url"));
}

/**
* 登录
* @param username
* @param password
*/
public void login(String username,String password){
this.input_username.sendKeys(username);
this.input_password.sendKeys(password);
this.button_submit.click();
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值