简单学习Selenium的PageFactory模式

本文介绍了PageFactory设计模式在Selenium WebDriver中的应用,通过示例对比了使用PageFactory前后定位页面元素的区别,展示了该模式如何提高代码的可读性和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笃信好学,自然宽和

PageFactory是一种页面设计模式;主要技术点是@FindBy注解;

从以下对比来看看使用PageFactory,与不使用有什么区别;

百度首页为例;

1、不用PageFactory模式:

String url = "https://www.baidu.com";
System.setProperty("webdriver.gecko.driver", "F:\\eclipse_workspace\selenium3.12test\\geckodriver-v0.20.0-win64\\geckodriver.exe");
System.setProperty("webdriver.firefox.bin", "E:/Program Files/Mozilla Firefox/firefox.exe");
WebDriver driver = new FirefoxDriver(); 
driver.get(url);
//主要的变化是以下这两行;
driver.findElement(By.id("kw")).sendKeys("selenium 3.12.0");
driver.findElement(By.id("su")).click();

2、使用PageFactory模式:

WebDriver driver ;
String url = "https://www.baidu.com";
@FindBy(id="kw")
public  WebElement kw;
@FindBy(id="su")
public WebElement su;	
driver.get(url);
PageFactory.initElements(driver, this);
kw.sendKeys("selenium 3.12.0");
su.click();
......
原来需要通过一大串方法才能获得的页面元素变得简单了;页面元素获取与逻辑业务操作的分离,使得对页面元素得到更好的维护。

备注:若是@FindBy没有指定查找属性,它会默认的查找id的属性,id没有再查找是name属性,如果还没有找到就会报错。 还支持Xpath,CSS,classname等多种类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值