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

如何建一个营销网站百度竞价推广课程

如何建一个营销网站,百度竞价推广课程,设计咨询有限公司,做网站步骤在上篇中,我们已经搭建好了框架的基本雏形,但只是引入了页面层、用例层的思想,我们在实际使用中会发现,如果我们很多的用例需要很多前置工作,这些前置工作又有可能涉及到多个页面,那么我们在维护的时候就会…

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

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

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

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

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://www.dtcms.com/wzjs/399773.html

相关文章:

  • 祝贺网站上线泰安做网站公司哪家比较好
  • 设计教育网站关键词优化外包
  • 网站建设中通知网络营销技能大赛优秀作品
  • 汇鑫网站建设永州网络推广
  • 玩具网站建设模板免费下载网站
  • 做简单鬼畜视频的网站谷歌网站收录提交入口
  • 东莞正规的免费网站优化注册百度账号
  • 做网站广告seo外包服务公司
  • 网站空间哪家做的好网站外链平台
  • 网站制作员广州建网站的公司
  • 如何做搞笑的视频视频网站东莞外贸推广公司
  • 海外高端网站建设优化公司
  • 做衣服上哪些网站经营管理培训课程
  • 合肥专业网站优化费用浅议网络营销论文
  • b2b模式的企业例子关键词seo排名怎么选
  • 推广比较好的网站国内新闻最近新闻今天
  • 无锡设计师网站推广普通话文字素材
  • 丽之鑫科技网站后台怎么做河北网站seo地址
  • 新手网站建设互联网广告平台有哪些
  • wordpress发帖提示升级vip网络推广优化培训
  • 临沂网站建设哪家好狼雨的seo教程
  • 浙江建设银行官方网站百度集团股份有限公司
  • 上海网站设计推荐刻重庆网站seo费用
  • 外贸网站开发推广下载百度app到手机上
  • WordPress注册免发邮件优化建议
  • 一个网站主页开发费用关键词seo如何优化
  • 西安网站建设加q479185700网站推广多少钱
  • 东莞公司建设网站网站seo服务商
  • 网站建设主要流程百家号关键词排名优化
  • html5手机网站调用微信分享重庆百度关键词优化软件