当前位置: 首页 > wzjs >正文

php网站后台忘记密码微信公众号平台官网首页

php网站后台忘记密码,微信公众号平台官网首页,游戏后端开发需要学什么,在线制作书封网站在上篇中,我们已经搭建好了框架的基本雏形,但只是引入了页面层、用例层的思想,我们在实际使用中会发现,如果我们很多的用例需要很多前置工作,这些前置工作又有可能涉及到多个页面,那么我们在维护的时候就会…

在上篇中,我们已经搭建好了框架的基本雏形,但只是引入了页面层、用例层的思想,我们在实际使用中会发现,如果我们很多的用例需要很多前置工作,这些前置工作又有可能涉及到多个页面,那么我们在维护的时候就会显得很棘手,举个例子:用例需要验证下单支付操作,涉及到的页面操作可能有登录页面、商品列表页面、商品详情页面、商品结算页面,而我们的用例实际只需要关心下单的业务,这显然多了很多我们当前用例无需关心的操作,这种情况下,如果我们还是用页面层、用例层的思想编写代码,会显得非常难维护。此时我们加入业务逻辑层,可以很好地解决这一问题。

下面拿百度举个简单例子说明:我们想要测试百度搜索框的时候,每次都想按照时间"最近一月"搜索,按照前面两层模型(页面层、用例层)的做法,那么每条用例都需要添加把鼠标移动到"设置按钮",然后再选择"高级设置",然后再点击"时间下拉框",再选择"最近一月",最后再点击"高级搜索"的代码,如下图:

显然上面的操作是非常繁琐的,那么这时候,我们就可以考虑将这些每个用例执行前都必须执行的一系列操作封装到业务逻辑层,然后我们在用例中只需调用业务逻辑层里的方法就可以完成这一系列的繁琐操作。

下面,我们对前面的框架添加上一个业务逻辑层,编写百度页面的时间选择操作。

1、由于点击"高级设置"是需要鼠标悬停在"设置"上才可以点击的,而鼠标悬停的操作是属于页面层的通用操作,在上一篇中页面层通用操作类BasePage没有封装鼠标悬停操作,因此需要在BasePage类添加此操作代码封装:

/*** 鼠标聚焦到指定元素的通用方法* @param driver 驱动对象* @param by 元素单位信息* @param elementName 元素名称*/
public void moveToElement(RemoteWebDriver driver,By by,String elementName){Actions actions=new Actions(driver);actions.moveToElement(waitElementVisible(driver,by)).perform();logger.info("鼠标移动到元素【"+elementName+"】上了");
}

2、在百度页面类BaiduPage中添加"高级设置"的元素定位信息与元素操作方法:

(1)元素定位信息:

   //设置的标签
//    private By setSpanBy=By.id("s-usersetting-top");private By setSpanBy=By.xpath("//a[text()='设置']");//高级搜索private By highSearchBy=By.xpath("//a[text()='高级搜索']");//时间选择下拉框private By timeSelectBy=By.xpath("//span[@id='adv-setting-gpc']//div[@class='c-select-selection']");//最近一天private By recentDayBy=By.xpath("//p[text()='最近一天']");//最近一周private By recentWeekBy=By.xpath("//p[text()='最近一周']");//最近一月private By recentMonthBy=By.xpath("//p[text()='最近一月']");//最近一年private By recentYearBy=By.xpath("//p[text()='最近一年']");//高级搜索确认按钮private By highSearchSubmitBy=By.xpath("//input[@value='高级搜索']");

(2)元素操作方法:

//封装鼠标移动到"设置"的方法
public void moveToSet(){moveToElement(driver,setSpanBy,"设置的Span标签");
}
//封装点击"高级搜索"的方法
public void clickHighSearch(){click(driver,highSearchBy,"高级搜索");
}
//封装点击"时间选择下拉框"
public void clickSelectTime(){click(driver,timeSelectBy,"时间选择下拉框");
}
//封装点击"最近一天"
public void clickRecentDay(){click(driver,recentDayBy,"最近一天");
}
//封装点击"最近一周"
public void clickRecentWeek(){click(driver,recentWeekBy,"最近一周");
}
//封装点击"最近一月"
public void clickRecentMonth(){click(driver,recentMonthBy,"最近一月");
}
//封装点击"最近一年"
public void clickRecentYear(){click(driver,recentYearBy,"最近一年");
}
//封装点击"高级搜索确认按钮"
public void clickHighSearchSubmit(){click(driver,highSearchSubmitBy,"高级搜索确认按钮");
}

3、在业务逻辑层(businesslogic)中添加一个百度搜索流程类BaiduFlow,为了自动化执行效果更明显点,此处我添加个硬等待1.5秒,观察选择时间的动作。

package com.howentech.businesslogic;import com.howentech.page.BaiduPage;
import org.openqa.selenium.remote.RemoteWebDriver;/*** @param* @author rebort* @create 2025/07/08* @return* @description**/
public class BaiduFlow {private RemoteWebDriver driver;public BaiduFlow(RemoteWebDriver driver) {this.driver = driver;}public void selectTime(String time){try {BaiduPage baiduPage=new BaiduPage(driver);baiduPage.moveToSet();//移动到设置按钮Thread.sleep(1500);baiduPage.clickHighSearch();//点击高级搜索Thread.sleep(1500);baiduPage.clickSelectTime();//点击时间选择下拉框if ("最近一天".equals(time)){baiduPage.clickRecentDay();Thread.sleep(1500);}else if("最近一周".equals(time)){baiduPage.clickRecentWeek();Thread.sleep(1500);}else if("最近一月".equals(time)){baiduPage.clickRecentMonth();Thread.sleep(1500);}else if("最近一年".equals(time)){baiduPage.clickRecentYear();Thread.sleep(1500);}baiduPage.clickHighSearchSubmit();//点击高级搜索提交按钮}catch (Exception e){e.printStackTrace();}}
}

4、在测试用例类中使用业务逻辑层的方法,完成时间选择动作

package com.howentech.testcases;import com.howentech.businesslogic.BaiduFlow;
import com.howentech.common.BaseTest;
import com.howentech.config.GlobalDatas;
import com.howentech.page.BaiduPage;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;/*** @param* @author rebort* @create 2025/07/08* @return* @description**/
public class TestBaidu2 extends BaseTest {@BeforeMethodpublic void setup(){//用例前置//1、打开浏览器openBrowser(GlobalDatas.BROWSER_NAME);maxBrowser();//2、进入百度页面toURL(GlobalDatas.INDEX_URL);}@Testpublic void test_baidu_01(){BaiduPage baiduPage=new BaiduPage(driver);baiduPage.inputData(GlobalDatas.USER_NAME);BaiduFlow baiduFlow=new BaiduFlow(driver);baiduFlow.selectTime("最近一月");}@AfterMethodpublic void teardown(){//用例后置//退出浏览器try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}quitBrowser();}
}

至此,我们就完成了业务逻辑层的设计,可以看到,通过这么设计,代码显得简单很多,只需要两行代码

BaiduFlow baiduFlow=new BaiduFlow(driver);
baiduFlow.selectTime("最近一月");

就可以完成高级搜索的时间选择,后边如果用例非常多,就可以明显看到代码简洁了许多。

运行效果:


文章转载自:

http://wKKKahnb.dqrpz.cn
http://oh31TfsG.dqrpz.cn
http://gOgwTpeg.dqrpz.cn
http://fqdPFwBR.dqrpz.cn
http://C3LQUaHu.dqrpz.cn
http://TyyFbmt0.dqrpz.cn
http://CAdxuObk.dqrpz.cn
http://ifMGF55a.dqrpz.cn
http://1uOQeB7F.dqrpz.cn
http://vHJCUQdG.dqrpz.cn
http://BVGl7bkh.dqrpz.cn
http://1uMOp2EU.dqrpz.cn
http://MQgLePM1.dqrpz.cn
http://N6A7ems9.dqrpz.cn
http://txPGCsSm.dqrpz.cn
http://af9lla2j.dqrpz.cn
http://bpGc3E6e.dqrpz.cn
http://KZr1HmfW.dqrpz.cn
http://EhBeTAqA.dqrpz.cn
http://aZ881ljF.dqrpz.cn
http://dlb5icqK.dqrpz.cn
http://d5wluNGd.dqrpz.cn
http://gWu38Ge8.dqrpz.cn
http://Lexsh7KW.dqrpz.cn
http://6ab608r0.dqrpz.cn
http://Di80cS0D.dqrpz.cn
http://0OpMyz1M.dqrpz.cn
http://ca2Z8RQo.dqrpz.cn
http://lkwVm3jj.dqrpz.cn
http://1W2qCRTT.dqrpz.cn
http://www.dtcms.com/wzjs/717876.html

相关文章:

  • 成都网站制作方案自己电脑上做网站怎么使用源码
  • 高周波做网站中国住房和城乡建设部网站建造师
  • 互联网公司网站建设ppt网页设计实验报告对于dw掌握情况
  • 宿迁定制网站建设iis7 wordpress 伪静态
  • 特殊信息收费的网站有哪些手机app下载大全
  • 手机做网站教程国内搜索引擎排名
  • 清远 网站建设建设银行咸阳缴费网站
  • 如何自创网站网站开发可行性分析报告
  • 阿里云医疗网站建设官方网站下载免费软件
  • 0建设营销型网站步骤介绍wordpress图片批量上传插件
  • 卖房网站排名二字顺口名字公司
  • wordpress js 统计代码杭州专业seo公司
  • 公司网站设计师百度权重是什么
  • 广西网站开发公司wordpress调用服务器
  • 优秀网站的特点成都网站seo技巧
  • 单页网站 营销学校网站开发实际意义
  • 网站做宣传域名什么好网络培训班心得体会800字
  • 青岛网站如何制作行业网站网址
  • 做个手机网站多少钱 广州官方网站建设进度表
  • 简述建设一个商务网站的过程高端品牌网站建设电商网站设计
  • 南昌的网站建设公司徐州 商城网站设计
  • 济南做平台网站的火山视窗软件开发平台
  • 苏州知名网站制作公司汕头seo外包平台
  • 个人做动漫资源网站有哪些深圳办公室租金
  • 网站开发毕业设计论文企业网站建设流程知乎
  • 天津大邱庄网站建设公司主题id或类的名称wordpress
  • 深圳教育网站设计公司西昌有没有可以做网站的公司
  • 临海门户网站住房和城乡建设规划局网络营销设计
  • 网站登录验证码怎么做wordpress 怎么上传到空间
  • wordpress外贸网站室内装修网站模板