Selenium+TestNG实战-6 自动化实现发一篇文章
前面我们实现了基本框架的搭建过程,把第一条自动化登录的脚本进行了业务Action和测试脚本进行分层或者分离,使用了POM思想去构造首页,测试类利用工厂类进行元素初始化操作。群里有朋友提醒,在第五篇中HomePage.java每个方法可以不用写返回类型,建议全部改成void,这个确实正确,因为测试脚本类使用了PageFactory类,所以页面类不需要返回方法。如果要写返回方法,测试类不使用PageFactory类,而是直接把每个页面类先创建一个实例对象,然后去调用实例方法。所以,这里我们采用页面工厂类,记得把前面return方法改成void。本篇来介绍如何把发文章这个用例自动化实现。

声明:本文由凯哥Java(www.kaigejava.com)发布于凯哥个人博客。
在本文末尾,凯哥会添加前五篇文章链接,方便大家阅读。
测试用例步骤
1. 登录
2. 登录后点击文章tab
3. 点击写文章label
4. 输入标题
5. 输入文章正文部分
6. 右侧点击发布按钮
7. 检查发布后文章是不是自己之前创建的文章
下面我们继续利用POM思想,来组织我们页面对象和页面元素。文章这个tab下还有4个页面:所有文章,写文章,分类目录,标签。这里我们在pageobjects包下新建一个article的包,在article包下新建一个writearticle和allarticle两个包。然后在writearticle包下新建一个NewArticle.java文件,开始写我们页面元素和发文章相关方法构造。这里,大家注意到了,左侧是一些公共菜单栏,我们可以把这个写成一个菜单导航页面。

MenuNavigation.java内容如下
package pageobjects;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import myframework.BasePage;
public class MenuNavigation extends BasePage {
/**
* 记住,新建一个页面类,就里面写上构造方法
* @param driver
*/
public MenuNavigation(WebDriver driver) {
super(driver);
}
// 左侧文章菜单
@FindBy (xpath=".//*/div[@class='wp-menu-name' and text()='文章']")
WebElement Article_tab;
// 写文章
@FindBy (xpath=".//*/a[contains(@href,'post-new') and text()='写文章']")
WebElement Article_writeArticle_label;
// 所有文章 标签
@FindBy (xpath=".//*/a[@href='edit.php'][text()='所有文章']")
WebElement Article_AllArticles;
/**
* 点击左侧文章菜单
*/
public void clickArticle() {
click(Article_tab);
}
/**
* 点击左侧所有文章菜单
*/
public void clickAllArticle() {
click(Article_AllArticles);
}
/**
* 点击写文章
*/
public void clickNewArticle() {
click(Article_writeArticle_label);
}
}
NewArticle.java
package pageobjects.article.writeacticle;
原创不易,完成人机校验,阅读全文