1、浏览器复用
代码:
package com.ceshiren;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class BrowserReuse {
@Test
void browserReuse() throws InterruptedException {
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("debuggerAddress","localhost:9222");
WebDriver driver = new ChromeDriver(chromeOptions);
// driver.get(“WeCom”);
Thread.sleep(3000);
driver.findElement(By.xpath(“//*[text()=‘从其他部门移入’]”)).click();
}
}
2、cookie复用
代码:
package cookies;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.io.File;
import java.io.IOException;
import java.time.Duration;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
public class CookiesTest {
private static WebDriver driver;
private static WebDriverWait wait;
private static ObjectMapper mapper;
//开始
@BeforeAll
static void setUp(){
driver = new ChromeDriver();
wait = new WebDriverWait(driver,Duration.ofSeconds(30));
mapper = new ObjectMapper(new YAMLFactory());
}
//结束
@AfterAll
static void tearDown(){
driver.quit();
}
//保存cookie
@Test
void addCookies() throws IOException {
driver.get("https://work.weixin.qq.com/wework_admin/loginpage_wx");
wait.until(ExpectedConditions.urlContains("https://work.weixin.qq.com/wework_admin/frame"));
//获取cookie放入集合
Set<Cookie> cookies = driver.manage().getCookies();
//将cookie值写入yaml文件
mapper.writeValue(new File("src/test/resources/cookies/cookieInfo.yaml"),cookies);
}
//读取cookie
@Test
void getCookies() throws IOException {
driver.get("https://work.weixin.qq.com/wework_admin/loginpage_wx");
//1、从yaml文件中读取cookie信息
TypeReference<List<HashMap<String,Object>>> typeReference = new TypeReference<List<HashMap<String, Object>>>() {};
List<HashMap<String,Object>> cookies = mapper.readValue(new File("src/test/resources/cookies/cookieInfo.yaml"),typeReference);
//2、将读取的cookie信息添加到浏览器
cookies.stream().forEach(
(cookie) -> driver.manage().addCookie(
new Cookie(cookie.get("name").toString(),cookie.get("value").toString())
)
);
//3、刷新页面
driver.navigate().refresh();
}
}