package cn.lanqiao.web;
import java.time.Duration;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
/**
* 请按照操作步骤编写测试用例
*
* 用例要求:
* 1.合理使用元素等待时间
* 2.请调用 Page 类中的方法实现操作步骤
* 3.页面及 iframe 切换的代码填写在此文件中
* 4.不要改动已经写好的方法名。
*
*/
public class WebCaseTest {
WebDriver driver = null;
//浏览器初始化
@Before
public void setUp() {
//不要改动此处 driver 位置
System.setProperty("webdriver.gecko.driver","C:\\LanQiaoTest\\project\\JavaLanqiaoTest\\driver\\geckodriver.exe");
FirefoxOptions options = new FirefoxOptions();
options.addPreference("security.fileuri.strict_origin_policy", false);
options.addPreference("security.fileuri.origin_policy", "*");
driver = new FirefoxDriver(options);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.manage().window().maximize();
//TODO 请填写被测站点地址
driver.get("https://65275fd68a12c7a0dc91fa67.hz-iframe-svc.simplelab.cn/login");
}
//请在此续写测试用例
@Test
public void testCase() throws InterruptedException {
//TODO 请参照题目中【用例步骤】补全此处代码
//创建 LoginPage 对象
LoginPage loginPage = new LoginPage(driver);
//创建 UserManagePage 对象
UserManagePage userManagePage = new UserManagePage(driver);
//创建AddUserPage对象
AddUserPage addUserPage = new AddUserPage(driver);
//TODO 请调用以上3个实例化对象中的方法完成测试用例代码(具体请参照题目中的用例步骤描述和截图)
//步骤1-登录页面 输入【登录账号】-admin
loginPage.inputLoginName("admin");
//步骤2-点击登录密码输入框并输入密码-admin123
loginPage.inputLoginPassword("admin123");
//步骤3-点击登录按钮
loginPage.clickLoginButton();
//断言1-断言用户名是否为【蓝桥超管】,如果断言失败则扣 4 分
Assert.assertEquals("蓝桥超管", userManagePage.getUsernameText());
//步骤4-点击系统管理菜单
userManagePage.clickSystemMenu();
//步骤5-点击用户管理菜单
userManagePage.clickUserMenu();
Thread.sleep(3000);
//实现窗口切换用例
driver.switchTo().frame(1);
//步骤6-点击新增按钮
userManagePage.clickAddUserButton();
//注意:这里涉及Frame切换、多窗口切换
//切换到默认的窗口
driver.switchTo().defaultContent();
//切换到索引为 2 的窗口
driver.switchTo().frame(2);
//步骤7-点击用户名输入框并输入-userName
addUserPage.inputUserName("userName");
//步骤8-点击登录用户输入框并输入-loginName
addUserPage.inputLoginName("loginName");
//步骤9-点击登录密码输入框并输入-loginPassword
addUserPage.inputLoginPassword("loginPassword");
//步骤10-点击单选框-角色:选择【普通角色】
addUserPage.clickRole();
//步骤11-点击保存按钮
addUserPage.clickSaveButton();
//多窗口切换
driver.switchTo().defaultContent();
driver.switchTo().frame(1);
Thread.sleep(1000);
//断言2-断言新增后分页展示:期望=显示第 1 到第 3 条记录,总共 3 条记录,实际值=text
Assert.assertEquals("显示第 1 到第 3 条记录,总共 3 条记录", userManagePage.getPageNumberText());
//步骤12-输入已新增登录用户
userManagePage.inputLoginName("loginName");
//步骤13-点击搜索按钮
userManagePage.clickSearchButton();
Thread.sleep(1000);
//断言3-断言搜素后分页展示:期望=显示第 1 到第 1 条记录,总共 1 条记录,实际值=text
Assert.assertEquals("显示第 1 到第 1 条记录,总共 1 条记录", userManagePage.getPageNumberText());
//步骤14-删除搜索用户
userManagePage.clickdeleteUser();
Thread.sleep(1000);
//步骤15-点击重置按钮
userManagePage.clickResetButton();
//断言4-断言删除后分页展示:期望=显示第 1 到第 2 条记录,总共 2 条记录,实际值=text
Assert.assertEquals("显示第 1 到第 2 条记录,总共 2 条记录", userManagePage.getPageNumberText());
Thread.sleep(2000);
//窗口切回主页面
driver.switchTo().defaultContent();
//步骤16-实现 【用户退出】的操作方法
userManagePage.clickLoginOut();
Thread.sleep(2000);
}
//浏览器退出
@After
public void tearDown() {
if(driver!=null)
driver.quit();
}
}