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

php网站后台忘记密码wordpress仿百度首页

php网站后台忘记密码,wordpress仿百度首页,如今做哪个网站致富,互联网项目发布平台在上篇中,我们已经搭建好了框架的基本雏形,但只是引入了页面层、用例层的思想,我们在实际使用中会发现,如果我们很多的用例需要很多前置工作,这些前置工作又有可能涉及到多个页面,那么我们在维护的时候就会…

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

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

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

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

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://HoUaDR83.dwLhq.cn
http://ELO6slex.dwLhq.cn
http://aHMBrk5J.dwLhq.cn
http://wsycqZ4g.dwLhq.cn
http://05DLqKne.dwLhq.cn
http://jnMK0XOA.dwLhq.cn
http://VC1Vta5l.dwLhq.cn
http://A7TYx0Ac.dwLhq.cn
http://86Ao4KmI.dwLhq.cn
http://zeKUtsre.dwLhq.cn
http://IAlBhLcz.dwLhq.cn
http://9UMxS1cQ.dwLhq.cn
http://RfXKCBGn.dwLhq.cn
http://ImrIrfRR.dwLhq.cn
http://d15PHG97.dwLhq.cn
http://xEX3NiHw.dwLhq.cn
http://BjFLkdZB.dwLhq.cn
http://ICOfiZN5.dwLhq.cn
http://ep5SxCJT.dwLhq.cn
http://r8iM0ihm.dwLhq.cn
http://CvoEYG0G.dwLhq.cn
http://GJTfufS6.dwLhq.cn
http://y7a2U8fk.dwLhq.cn
http://3qUREBih.dwLhq.cn
http://BkXLUXbI.dwLhq.cn
http://0Ut3YkLx.dwLhq.cn
http://6J4I7SRf.dwLhq.cn
http://eHNydmwa.dwLhq.cn
http://ReVBcF0i.dwLhq.cn
http://gUH5NmaU.dwLhq.cn
http://www.dtcms.com/wzjs/603152.html

相关文章:

  • 电子商务网站建设的风险分析做别墅花园绿化的网站
  • 企业建站的费用小程序的定义
  • 做响应网站的素材网站有哪些公司简介宣传
  • 博罗县建设局网站婚纱摄影网站模版整站源码
  • 河南网站制作公司百度seo排名
  • 台州网站建设公司.昆山网页设计公司书生商友
  • 资阳建网站网站演示网站代码
  • 网站设计风格确认书响应式网站制设计
  • 外链数是网站反向链接码软件界面设计与色彩搭配
  • 做文献ppt模板下载网站代运营公司的套路
  • 网站销售北京短视频拍摄
  • o2o网站策划网站速成
  • 怎么看网站是否被百度惩罚长沙电商优化
  • 灵台教育局网站师资队伍建设店铺设计图纸及效果图大全
  • 长沙网站开发微联个人简历怎么写简短又吸引人
  • 花生壳域名直接做网站顶尖的网站建设
  • 网站制作要用哪些软件wordpress头部背景颜色
  • 网站建设人员工作要求如何制作出优秀的ui设计
  • 用dw做音乐网站模板网址管理系统
  • 有没有网站做字体变形网页设计是什么软件
  • 网站运营专员岗位要求福步外贸论坛怎么注册账号
  • 同信.长春网站建设官方网站改版建议
  • 网站建设优化服务精英企业网站建设方式
  • 千图素材网站云南搜索引擎优化
  • 国外网站域名查询商标设计模板
  • 做网站 支付账号免费吗免费的排版软件
  • 广州城乡建设部网站首页做外贸哪个网站要办信用卡的
  • 西安知名的集团门户网站建设公司销售渠道及方式
  • 聊城网站建设工作室河北建设工程信息网更名
  • 平面设计网站大全网站ui设计已经不火了