添加启动IE浏览器方法

This commit is contained in:
彭宇琦 2020-11-08 17:12:53 +08:00
parent 547f7da929
commit 3bb5040b82
17 changed files with 223 additions and 568 deletions

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
userprojectsettings=false

Binary file not shown.

View File

@ -38,6 +38,9 @@ public abstract class AbstractBrower {
*/ */
HashMap<String, Page> pageMap = new HashMap<String, Page>(16); HashMap<String, Page> pageMap = new HashMap<String, Page>(16);
/**
* 存储浏览器打开的窗口handle值
*/
HashSet<String> windowHandleSet = new HashSet<>(); HashSet<String> windowHandleSet = new HashSet<>();
/** /**
@ -180,9 +183,11 @@ public abstract class AbstractBrower {
public WebDriver getDriver() { public WebDriver getDriver() {
// 若driver对象未生成则进行开启浏览器的操作 // 若driver对象未生成则进行开启浏览器的操作
if (driver == null) { if (driver == null) {
// 添加驱动的存储位置
System.setProperty(getBrowerDriverSetName(), driverFile.getAbsolutePath());
// 打开浏览器 // 打开浏览器
openBrower(); openBrower();
// 若存在需要打开的页面则打开第一个页面 // 若存在需要打开的页面则打开第一个页面
if (nowPage != null) { if (nowPage != null) {
openUrl(nowPage, false); openUrl(nowPage, false);
@ -196,6 +201,11 @@ public abstract class AbstractBrower {
* 用于打开浏览器 * 用于打开浏览器
*/ */
abstract void openBrower(); abstract void openBrower();
/**
* 用于返回浏览器驱动设置的名称由于每个浏览器不同导致启动驱动名称也不同
* @return 驱动设置名称
*/
abstract String getBrowerDriverSetName();
public String getAllInformation() { public String getAllInformation() {
// 遍历所有标签页存储标签页信息 // 遍历所有标签页存储标签页信息

View File

@ -13,20 +13,20 @@ import com.alibaba.fastjson.JSONArray;
/** /**
* <p><b>文件名</b>ChromeBrower.java</p> * <p><b>文件名</b>ChromeBrower.java</p>
* <p><b>用途</b>用于启动谷歌浏览器并加载相应的待测页面支持对浏览器进行部分个性化的配置 * <p><b>用途</b>用于启动谷歌浏览器并加载相应的待测页面支持对浏览器进行部分个性化的配置
* 以达到相应的测试效果使用方法时必须指定谷歌浏览器驱动所在位置以保证浏览器能正常启动</p> * 以达到相应的测试效果</p>
* <p>启动浏览器需要调用{@link #getDriver()}方法启动浏览器若在构造方法中定义了{@link Page} * <p>启动浏览器需要调用{@link #getDriver()}方法启动浏览器若在构造方法中定义了{@link Page}
* 启动浏览器时会自动对页面进行加载若未定义则只打开浏览器:</p> * 启动浏览器时会自动对页面进行加载若未定义则只打开浏览器:</p>
* <p> * <p>
* 若调用方法<br> * 若调用方法<br>
* ChromeBrower chrome = new {@link #ChromeBrower(File)}<br> * ChromeBrower brower = new {@link #ChromeBrower(File)}<br>
* chrome.{@link #getDriver()}<br> * brower.{@link #getDriver()}<br>
* 后将只全屏打开浏览器不会加载页面 * 后将只全屏打开浏览器不会加载页面
* </p> * </p>
* <p> * <p>
* 若调用方法<br> * 若调用方法<br>
* ChromeBrower chrome = new {@link #ChromeBrower(File, Page)}<br> * ChromeBrower brower = new {@link #ChromeBrower(File, Page)}<br>
* 或ChromeBrower chrome = new {@link #ChromeBrower(File, String, String)}<br> * 或ChromeBrower brower = new {@link #ChromeBrower(File, String, String)}<br>
* chrome.{@link #getDriver()}<br> * brower.{@link #getDriver()}<br>
* 后将全屏打开浏览器并加载相应的页面 * 后将全屏打开浏览器并加载相应的页面
* </p> * </p>
* <p>对于个性化配置在调用{@link #getDriver()}方法前调用{@link #addConfig(ChromeOptionType)} * <p>对于个性化配置在调用{@link #getDriver()}方法前调用{@link #addConfig(ChromeOptionType)}
@ -35,7 +35,7 @@ import com.alibaba.fastjson.JSONArray;
* <p>若添加配置在调用{@link #getDriver()}方法之后则设置的配置不会生效</p> * <p>若添加配置在调用{@link #getDriver()}方法之后则设置的配置不会生效</p>
* <p><b>编码时间</b>2020年4月17日下午2:56:08</p> * <p><b>编码时间</b>2020年4月17日下午2:56:08</p>
* <p><b>修改时间</b>2020年11月7日下午7:12:48</p> * <p><b>修改时间</b>2020年11月7日下午7:12:48</p>
* @author * @author 彭宇琦
* @version Ver1.0 * @version Ver1.0
* @since Selenium 3.14.0 * @since Selenium 3.14.0
* @since JDK 1.8 * @since JDK 1.8
@ -46,6 +46,10 @@ public class ChromeBrower extends AbstractBrower {
* 用于存储需要对浏览器进行配置的参数 * 用于存储需要对浏览器进行配置的参数
*/ */
HashSet<ChromeOptionType> chromeConfigSet = new HashSet<ChromeOptionType>(); HashSet<ChromeOptionType> chromeConfigSet = new HashSet<ChromeOptionType>();
/**
* 用于对谷歌浏览器的配置
*/
ChromeOptions chromeOption = new ChromeOptions();
/** /**
* 存储谷歌可执行文件路径 * 存储谷歌可执行文件路径
@ -95,6 +99,15 @@ public class ChromeBrower extends AbstractBrower {
chromeConfigSet.add(chromeOptionType); chromeConfigSet.add(chromeOptionType);
} }
/**
* 用于添加浏览器无需带参数的配置
*
* @param chromeOptionType 浏览器配置枚举{@link ChromeOptionType}枚举类
*/
public void addConfig(ChromeOptionType chromeOptionType) {
chromeConfigSet.add(chromeOptionType);
}
/** /**
* <p> * <p>
* 用于设置谷歌浏览器可执行文件路径在启动浏览器时将打开该路径下的浏览器 * 用于设置谷歌浏览器可执行文件路径在启动浏览器时将打开该路径下的浏览器
@ -111,15 +124,6 @@ public class ChromeBrower extends AbstractBrower {
driver = null; driver = null;
} }
/**
* 用于添加浏览器无需带参数的配置
*
* @param chromeOptionType 浏览器配置枚举{@link ChromeOptionType}枚举类
*/
public void addConfig(ChromeOptionType chromeOptionType) {
chromeConfigSet.add(chromeOptionType);
}
/** /**
* 用于移除相应的浏览器配置 * 用于移除相应的浏览器配置
* *
@ -138,39 +142,38 @@ public class ChromeBrower extends AbstractBrower {
@Override @Override
void openBrower() { void openBrower() {
// 添加谷歌浏览器驱动的存储位置
System.setProperty("webdriver.chrome.driver", driverFile.getAbsolutePath());
ChromeOptions co = new ChromeOptions();
//判断是否存在浏览器启动路径 //判断是否存在浏览器启动路径
if (binaryFile != null) { if (binaryFile != null) {
co.setBinary(binaryFile); chromeOption.setBinary(binaryFile);
} }
//判断是否存在配置 //判断是否存在配置
if (chromeConfigSet.size() != 0) { if (chromeConfigSet.size() != 0) {
co = browerConfig(); browerConfig();
} }
driver = new ChromeDriver(co); driver = new ChromeDriver(chromeOption);
// 添加操作信息 // 添加操作信息
informationJson.put("浏览器名称", ((ChromeDriver) driver).getCapabilities().getBrowserName()); informationJson.put("浏览器名称", ((ChromeDriver) driver).getCapabilities().getBrowserName());
informationJson.put("浏览器版本", ((ChromeDriver) driver).getCapabilities().getVersion()); informationJson.put("浏览器版本", ((ChromeDriver) driver).getCapabilities().getVersion());
informationJson.put("操作系统版本", System.getProperties().getProperty("os.name")); informationJson.put("操作系统版本", System.getProperties().getProperty("os.name"));
} }
@Override
String getBrowerDriverSetName() {
return "webdriver.chrome.driver";
}
/** /**
* 用于将配置添加至浏览器中 * 用于将配置添加至浏览器中
*/ */
ChromeOptions browerConfig() { void browerConfig() {
// 用于存储浏览器的配置信息 // 用于存储浏览器的配置信息
JSONArray configJsonArray = new JSONArray(); JSONArray configJsonArray = new JSONArray();
// 用于添加配置
ChromeOptions chromeOption = new ChromeOptions();
//若配置中存在控制已打开的浏览器则直接添加相应的配置并结束方法否则会报错 //若配置中存在控制已打开的浏览器则直接添加相应的配置并结束方法否则会报错
if (chromeConfigSet.contains(ChromeOptionType.CONTRAL_OPEN_BROWER)) { if (chromeConfigSet.contains(ChromeOptionType.CONTRAL_OPEN_BROWER)) {
chromeOption.setExperimentalOption(ChromeOptionType.CONTRAL_OPEN_BROWER.getKey(), String.valueOf(ChromeOptionType.CONTRAL_OPEN_BROWER.getValue())); chromeOption.setExperimentalOption(ChromeOptionType.CONTRAL_OPEN_BROWER.getKey(), String.valueOf(ChromeOptionType.CONTRAL_OPEN_BROWER.getValue()));
return chromeOption; return;
} }
// 用于存储谷歌浏览器个性化配置 // 用于存储谷歌浏览器个性化配置
@ -216,7 +219,7 @@ public class ChromeBrower extends AbstractBrower {
// 添加配置信息 // 添加配置信息
informationJson.put("浏览器配置", configJsonArray); informationJson.put("浏览器配置", configJsonArray);
return chromeOption; return;
} }
/** /**

View File

@ -0,0 +1,90 @@
package pres.auxiliary.work.selenium.brower;
import java.io.File;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.ie.InternetExplorerOptions;
/**
* <p><b>文件名</b>IeBrower.java</p>
* <p><b>用途</b>用于启动IE浏览器并加载相应的待测页面</p>
* <p>启动浏览器需要调用{@link #getDriver()}方法启动浏览器若在构造方法中定义了{@link Page}
* 启动浏览器时会自动对页面进行加载若未定义则只打开浏览器:</p>
* <p>
* 若调用方法<br>
* IeBrower brower = new {@link #IeBrower(File)}<br>
* brower.{@link #getDriver()}<br>
* 后将只全屏打开浏览器不会加载页面
* </p>
* <p>
* 若调用方法<br>
* IeBrower brower = new {@link #IeBrower(File, Page)}<br>
* 或IeBrower brower = new {@link #IeBrower(File, String, String)}<br>
* brower.{@link #getDriver()}<br>
* 后将全屏打开浏览器并加载相应的页面
* </p>
* <p><b>编码时间</b>2020年11月8日 下午3:52:31</p>
* <p><b>修改时间</b>2020年11月8日 下午3:52:31</p>
* @author 彭宇琦
* @version Ver1.0
* @since JDK 1.8
*/
public class IeBrower extends AbstractBrower {
/**
* TODO 用于存储对IE的设置目前未开发在类中设置IE的方法此处保留
*/
private InternetExplorerOptions ieOption = new InternetExplorerOptions();
/**
* 指定驱动文件路径并添加一个待测站点
*
* @param driverFile 驱动文件对象
* @param page {@link Page}类对象
*/
public IeBrower(File driverFile, Page page) {
super(driverFile, page);
}
/**
* 指定驱动文件路径并添加一个待测站点
*
* @param driberFile 驱动文件对象
* @param url 待测站点
* @param pageName 待测站点名称用于切换页面
*/
public IeBrower(File driverFile, String url, String pageName) {
super(driverFile, url, pageName);
}
/**
* 指定驱动文件所在路径
*
* @param driberFile 驱动文件对象
*/
public IeBrower(File driverFile) {
super(driverFile);
}
/**
* 用于对IE浏览器的个性化设置
* @param ieOption IE设置类对象{@link InternetExplorerOptions}
*/
public void setIeOption(InternetExplorerOptions ieOption) {
this.ieOption = ieOption;
}
@Override
void openBrower() {
//构造浏览器
driver = new InternetExplorerDriver(ieOption);
//添加浏览器信息
informationJson.put("浏览器名称", ((InternetExplorerDriver) driver).getCapabilities().getBrowserName());
informationJson.put("浏览器版本", ((InternetExplorerDriver) driver).getCapabilities().getVersion());
informationJson.put("操作系统版本", System.getProperties().getProperty("os.name"));
}
@Override
String getBrowerDriverSetName() {
return "webdriver.ie.driver";
}
}

View File

@ -1,85 +0,0 @@
package pres.auxiliary.selenium.operatecontrol;
import java.io.File;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
public class TestTextControl {
TextEvent tc;
WebDriver d;
@Before
public void openBrowers() {
d = new FirefoxBrower("", "pyqone", "http://www.hao123.com").getDriver();
tc = new TextEvent(d);
tc.setXmlFile(new File("src/test/java/pres/auxiliary/selenium/event/测试.xml"));
}
@After
public void closeBrowers() {
//d.close();
}
@Test
public void test1() {
tc.input("呵呵呵", "哈哈哈");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test
public void test2() {
tc.input("//*[@id=\"search-input\"]", "哈哈哈");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test
public void test3() {
tc.input("/html/body/div[2]/div[2]/div/div[1]/div[2]/div/div/div[1]/div[3]/form/div[1]/div/input", "哈哈哈");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test
public void test4() {
tc.input("html body div#skinroot.sk_skin-color-green div.layout-container.s-sbg1 div.layout-container-inner.s-sbg2 div div.hao123-search-panel-box div#hao123-search-panel.g-wd.page-width.hao123-search-panel div.hao123-search.hao123-indexsearchlist1 div#search.search div.right.form-wrapper form#search-form.form-hook div.input-wrapper.wrapper-hook.g-ib div.input-shadow.shadow-hook.g-ib input#search-input.input.input-hook", "哈哈哈");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test
public void test5() {
tc.input("嘻嘻嘻", "哈哈哈");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test
public void test6() {
tc.input("嘎嘎嘎", "哈哈哈");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

View File

@ -1,197 +0,0 @@
package pres.auxiliary.selenium.tool;
import java.io.IOException;
import java.lang.reflect.Method;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import pres.auxiliary.work.selenium.tool.RecordTool;
import pres.auxiliary.work.selenium.tool.RecordType;
public class RecordToolTest {
/**
* 文件名
*/
private final String FILE_NAME = "test";
private ChromeBrower chrome = new ChromeBrower("Resource/BrowersDriver/chromedriver.exe", 9222);
/**
* 初始化数据并用于测试setSaveFoldersetFileName和setModule方法
*/
@BeforeClass
public void testSetFunction() {
RecordTool.getLog().setFileName(FILE_NAME);
RecordTool.getRecord().setFileName(FILE_NAME);
RecordTool.getScreenshot().setDriver(chrome.getDriver());
RecordTool.setModule("第一模块", true);
}
/**
* 关闭谷歌driver
* @throws IOException
*/
@AfterClass
public void closeDriver() throws IOException {
chrome.getDriver().quit();
RecordTool.createXmindReport("测试报告");
}
/**
* 输出测试方法及分隔符
*/
@BeforeMethod
public void testSetFile(Method method) {
System.out.println("-".repeat(20));
System.out.println("当前执行方法:" + method.getName());
System.out.println("=".repeat(10));
}
@AfterMethod
public void endRecord(Method method) {
System.out.println(RecordTool.getModuleInformation());
System.out.println(RecordTool.getModuleJsonInformation());
}
/**
* 测试RecordStep.getRecordType()方法
*/
@Test
public void testSetRecordType() {
RecordTool.setModule("SetRecordType", true);
RecordTool.startRecord(this.getClass().getName(), "testSetRecordType");
RecordTool.setRecordType(RecordType.LOG);
RecordTool.recordStep("这是testIsRecordStep()方法添加的第1步骤");
RecordTool.setRecordType(RecordType.RECORD);
RecordTool.recordStep("这是testIsRecordStep()方法添加的第2步骤");
RecordTool.setRecordType(RecordType.SCREENSHOT);
RecordTool.recordStep("这是testIsRecordStep()方法添加的第3步骤");
RecordTool.setRecordType(RecordType.SYSTEM);
RecordTool.recordStep("这是testIsRecordStep()方法添加的第4步骤");
RecordTool.endRecord();
}
/**
* 测试RecordStep.setModule(方法)
*/
@Test
public void testSetAndGetModule() {
RecordTool.setModule("第二模块", false);
RecordTool.startRecord(this.getClass().getName(), "testSetAndGetModule");
RecordTool.endRecord();
RecordTool.setModule("第二模块", false);
RecordTool.startRecord(this.getClass().getName(), "testSetAndGetModule");
RecordTool.endRecord();
RecordTool.setModule("第三模块", false);
RecordTool.startRecord(this.getClass().getName(), "testSetAndGetModule");
RecordTool.endRecord();
System.out.println(RecordTool.getModuleInformation());
System.out.println(RecordTool.getModuleJsonInformation());
System.out.println(RecordTool.getModuleInformation("第一模块"));
System.out.println(RecordTool.getModuleJsonInformation("第一模块"));
System.out.println(RecordTool.getModuleInformation("第四模块"));
System.out.println(RecordTool.getModuleJsonInformation("第四模块"));
}
/**
* 测试RecordTool.recordStep()方法
*/
@Test
public void testRecordStep() {
RecordTool.setModule("RecordStep", true);
RecordTool.startRecord(this.getClass().getName(), "testRecordStep");
RecordTool.setRecordType(RecordType.values());
RecordTool.recordStep("这是testRecordStep()方法添加的第1步骤");
RecordTool.recordStep("这是testRecordStep()方法添加的第2步骤");
RecordTool.recordStep("这是testRecordStep()方法添加的第3步骤");
RecordTool.endRecord();
}
/**
* 测试isRecordStep()方法
*/
@Test
public void testIsRecordStep() {
RecordTool.setModule("IsRecordStep", true);
RecordTool.startRecord(this.getClass().getName(), "testIsRecordStep");
RecordTool.setRecordType(RecordType.values());
RecordTool.recordStep("这是testIsRecordStep()方法添加的第1步骤");
RecordTool.setRecordStep(false);
RecordTool.recordStep("这是testIsRecordStep()方法添加的第2步骤");
RecordTool.setRecordStep(true);
RecordTool.recordStep("这是testIsRecordStep()方法添加的第3步骤");
RecordTool.endRecord();
}
/**
* 测试recordResult()方法
*/
@Test
public void testRecordResult() {
RecordTool.setModule("RecordResult", true);
RecordTool.startRecord(this.getClass().getName(), "testRecordResult");
RecordTool.setRecordType(RecordType.values());
RecordTool.recordResult(true, "成功", "失败");
RecordTool.recordResult(false, "成功", "失败");
RecordTool.recordResult(false, "成功");
RecordTool.recordResult(true, "失败");
RecordTool.endRecord();
}
/**
* 测试recordMark()方法
*/
@Test
public void testRecordMark() {
RecordTool.setModule("RecordMark", true);
RecordTool.startRecord(this.getClass().getName(), "testRecordMark");
RecordTool.setRecordType(RecordType.values());
RecordTool.recordMark("第1个备注");
RecordTool.recordMark("第2个备注");
RecordTool.recordMark("第3个备注");
RecordTool.endRecord();
}
/**
* 测试recordException()方法
*/
@Test
public void testRecordException() {
RecordTool.setModule("RecordException", true);
RecordTool.startRecord(this.getClass().getName(), "testRecordException");
RecordTool.setRecordType(RecordType.values());
RecordTool.recordException(new NullPointerException("这是空指针异常"));
RecordTool.endRecord();
}
/**
* 记录综合测试
*/
@Test
public void testRecordAll() {
RecordTool.setModule("RecordException", true);
RecordTool.startRecord(this.getClass().getName(), "testRecordAll");
RecordTool.setRecordType(RecordType.values());
RecordTool.recordStep("第一步");
RecordTool.recordStep("第二步");
RecordTool.recordResult(true, "这是bug");
RecordTool.recordMark("记录一下备注");
RecordTool.recordException(new NullPointerException("这是空指针异常"));
RecordTool.endRecord();
}
@Test(priority = 1)
public void testGetAllModuleInformation() {
RecordTool.startRecord(this.getClass().getName(), "testGetAllModuleInformation");
RecordTool.endRecord();
System.out.println(RecordTool.getAllModuleInformation());
}
}

View File

@ -1,150 +0,0 @@
package pres.auxiliary.selenium.tool;
import java.io.File;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.openqa.selenium.TimeoutException;
import pres.auxiliary.work.selenium.tool.RecordTool;
import pres.auxiliary.work.selenium.tool.Screenshot;
public class TestRecord {
@Rule
public TestName name = new TestName();
static ExcelRecord_Old r;
static FirefoxBrower fb;
static Event event;
static Screenshot sc;
@BeforeClass
public static void open() {
fb = new FirefoxBrower("", "", "http://116.10.187.227:88/zentao/user-login.html");
fb.getDriver();
r.setBrower(fb);
r.setActionName("彭宇琦");
sc = new Screenshot(fb.getDriver());
sc.setSavePath("C:\\AutoTest\\Screenshot\\");
sc.setTime(1000);
event = Event.newInstance(fb.getDriver());
event.setXmlFile(new File("src/test/java/pres/auxiliary/selenium/operation/登录界面.xml"));
r = RecordTool.getRecord();
}
@AfterClass
public static void close() {
fb.close();
}
@Before
public void startRecord() {
r.startRecord(this.getClass().getName(), name.getMethodName());
r.caseID("Test_01_01");
r.caseModule("登录");
r.caseTitle("测试非正常登录系统");
r.caseCondition("进入登录页面");
}
@After
public void endRecord() {
r.endRecord();
}
// @Ignore
@Test
public void test1() throws Exception {
try {
r.caseStep("通过正确的用户名和密码登录");
r.caseExpect("能正常登录系统");
r.caseFlow("主线流");
event.getTextEvent().input("禅道用户名", "pengyuqi");
event.getTextEvent().input("禅道密码", "123456");
event.getClickEvent().click("禅道登录");
File f = sc.creatImage("正常登录");
try {
event.getClickEvent().click("禅道退出");
r.result("输入正确的用户名和密码后能正常登录,测试通过", true);
r.runScreenshot(f);
} catch (TimeoutException e) {
r.result("输入正确的用户名和密码后不能正常登录,测试不通过,详见截图:" + f.getAbsolutePath());
r.runScreenshot(f);
}
} catch (Exception e) {
r.setException(e);
r.errorScreenshot(sc.creatImage("抛出异常"));
}
}
// @Ignore
@Test
public void test2() throws Exception {
try {
r.caseStep("通过不正确的用户名和密码登录");
r.caseExpect("不能正常登录系统");
r.caseFlow("备选流1");
event.getTextEvent().input("禅道用户名", "pengyqi");
event.getTextEvent().input("禅道密码", "123456");
event.getClickEvent().click("禅道登录");
fb.getDriver().switchTo().alert().accept();
File f = sc.creatImage("不正常登录");
try {
event.getClickEvent().click("禅道退出");
r.result("输入不正确的用户名和密码后能正常登录,测试不通过", true);
r.runScreenshot(f);
} catch (TimeoutException e) {
r.result("输入不正确的用户名和密码后不能正常登录,测试通过");
r.runScreenshot(f);
}
} catch (Exception e) {
r.setException(e);
r.errorScreenshot(sc.creatImage("抛出异常"));
}
}
// @Ignore
@Test
public void test3() throws Exception {
try {
event.getTextEvent().input("禅道用户名", "pengyqi");
event.getTextEvent().input("禅道密码2", "123456");
event.getClickEvent().click("禅道登录");
File f = sc.creatImage("乱登录");
try {
event.getClickEvent().click("禅道退出");
r.result("输入不正确的用户名和密码后能正常登录,测试不通过,详见截图:" + f.getAbsolutePath());
r.runScreenshot(f);
} catch (TimeoutException e) {
r.result("输入不正确的用户名和密码后不能正常登录,测试通过,详见截图:" + f.getAbsolutePath());
r.runScreenshot(f);
}
} catch (Exception e) {
r.setException(e);
r.errorScreenshot(sc.creatImage("抛出异常"));
}
}
@Ignore
@Test
public void test4() {
r.result("呵呵呵",false);
r.result("哈哈哈", true);
r.result("嘻嘻嘻");
r.result("嘎嘎嘎",true);
r.result("唧唧唧");
}
}

View File

@ -1,35 +0,0 @@
package pres.auxiliary.selenium.tool;
import java.io.IOException;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.WebDriverException;
import pres.auxiliary.work.selenium.tool.Screenshot;
public class TestScreenshot {
static ChromeBrower cb;
static Screenshot sc;
static Event event;
@BeforeClass
public static void openBrowers() throws InterruptedException {
cb = new ChromeBrower("D:\\2.学习\\1.自动化测试\\1.自动化驱动\\chromedriver.exe", "http://116.10.187.227:88");
sc = new Screenshot(cb.getDriver());
event = Event.newInstance(cb.getDriver());
}
@AfterClass
public static void closeBrowers() {
cb.close();
}
@Test
public void testScreenshotToTime() throws InterruptedException, WebDriverException, IOException {
sc.screenshotToTime();
Thread.sleep(6000);
}
}

View File

@ -1,23 +0,0 @@
package pres.auxiliary.selenium.xml.io;
import java.io.File;
import org.junit.Test;
/**
* FileName: TestCreateXML.java
*
* 用于测试创建xml文件的程序
*
* @author 彭宇琦
* @Deta 2019年1月10日 上午11:35:25
* @version ver1.0
*/
public class TestCreateXML {
@Test
public void test_01() throws XmlFileNameIsNullException {
CreateXml.setMode(CreateXml.XPATH, CreateXml.ID, CreateXml.NAME);
CreateXml.setXmlPath("src/test/java/pres/auxiliary/selenium/xml/io/resource/");
CreateXml.create(new File("src/test/java/pres/auxiliary/selenium/xml/io/resource").listFiles());
}
}

View File

@ -22,7 +22,7 @@ import pres.auxiliary.work.selenium.brower.ChromeBrower.ChromeOptionType;
* @since JDK 1.8 * @since JDK 1.8
* *
*/ */
public class TestChromeBrower { public class ChromeBrowerTest {
/** /**
* 指向driver文件 * 指向driver文件
*/ */
@ -36,7 +36,7 @@ public class TestChromeBrower {
/** /**
* 关闭浏览器 * 关闭浏览器
*/ */
@AfterClass @AfterClass(alwaysRun = true)
public void quit() { public void quit() {
System.out.println(cb.getAllInformation()); System.out.println(cb.getAllInformation());
Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in);

View File

@ -0,0 +1,49 @@
package pres.auxiliary.work.selenium.brower;
import java.io.File;
import java.util.Scanner;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
/**
* <p><b>文件名</b>IeBrowerTest.java</p>
* <p><b>用途</b>用于对{@link IeBrower}类进行测试</p>
* <p><b>编码时间</b>2020年11月8日 下午4:54:29</p>
* <p><b>修改时间</b>2020年11月8日 下午4:54:29</p>
* @author 彭宇琦
* @version Ver1.0
* @since JDK 1.8
*/
public class IeBrowerTest {
/**
* 指向driver文件
*/
private final File driverFile = new File("Resource/BrowersDriver/Ie/IEDriverServer.exe");
/**
* 指向浏览器对象
*/
IeBrower ib;
/**
* 关闭浏览器
*/
@AfterClass(alwaysRun = true)
public void quit() {
System.out.println(ib.getAllInformation());
Scanner sc = new Scanner(System.in);
sc.next();
ib.closeBrower();
sc.close();
}
/**
* 测试打开浏览器后加载预设界面
*/
@Test
public void chromeBrowerTest_FilePage() {
ib = new IeBrower(driverFile, new Page("https://www.baidu.com", "百度"));
ib.getDriver();
}
}

View File

@ -1,28 +0,0 @@
package test.javase.image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.junit.BeforeClass;
import org.junit.Test;
public class TestGetImageInformation {
static BufferedImage i;
@BeforeClass
public static void newImage() {
try {
i = ImageIO.read(new File("E:\\测试\\Tsee4j测试\\1.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void test_01_GetWidthAndHight() throws Exception {
System.out.println("图片的像素为:" + i.getHeight() + " × " + i.getWidth());
}
}

View File

@ -1,19 +0,0 @@
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19

View File

@ -0,0 +1,38 @@
package test.selenium.brower;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.ie.InternetExplorerOptions;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
/**
* <p><b>文件名</b>TestOpenBrower.java</p>
* <p><b>用途</b>用于实验打开各类浏览器</p>
* <p><b>编码时间</b>2020年11月8日 下午2:49:54</p>
* <p><b>修改时间</b>2020年11月8日 下午2:49:54</p>
* @author 彭宇琦
* @version Ver1.0
* @since JDK 12
*/
public class TestOpenBrower {
WebDriver driver;
@AfterClass
public void quit() {
driver.quit();
}
@Test
public void openIeBrower() {
// File ieDriverFile = new File("Resource/BrowersDriver/Ie/IEDriverServer.exe");
// 指定IE driver的存放路径
System.setProperty("webdriver.ie.driver", "Resource/BrowersDriver/Ie/IEDriverServer.exe");
InternetExplorerOptions ieo = new InternetExplorerOptions();
//实例化webdriver对象启动IE浏览器
driver = new InternetExplorerDriver();
//通过对象driver调用具体的get方法来打开网页
driver.get("http://www.baidu.com/");
}
}