Selenium系列之--08 操作已打开的浏览器
参考文章:Can Selenium interact with an existing browser session?
1. 建一个ReuseWebDriver类
import java.io.IOException; import java.net.URL; import org.openqa.selenium.remote.Command; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.HttpCommandExecutor; import org.openqa.selenium.remote.RemoteWebDriver; import org.openqa.selenium.remote.Response; public class ReuseWebDriver extends RemoteWebDriver { public ReuseWebDriver(URL url, String sessionId) { super(); setSessionId(sessionId); setCommandExecutor(new HttpCommandExecutor(url) { @Override public Response execute(Command command) throws IOException { if (command.getName() != "newSession") { return super.execute(command); } return super.execute(new Command(getSessionId(), "getCapabilities")); } }); startSession(new DesiredCapabilities()); } }
2. 调用
public class ReuseIEDriverTest { public static void main(String[] args) throws MalformedURLException { ------- // 初始化一个IE浏览器实例 InternetExplorerDriver driver = new InternetExplorerDriver( ieCapabilities); // 最大化窗口 driver.manage().window().maximize(); // get()打开一个站点 driver.get("https://www.baidu.com"); // getTitle()获取当前页面title的值 System.out.println("当前打开页面的标题是: " + driver.getTitle()); SessionId sessionId = driver.getSessionId(); URL url = ((HttpCommandExecutor) driver.getCommandExecutor()) .getAddressOfRemoteServer(); System.out.println(sessionId); System.out.println(url); // 初始化一个chrome浏览器实例,实例名称叫driver ReuseWebDriver2 redriver = new ReuseWebDriver2(url,sessionId.toString()); // get()打开一个站点 redriver.get("https://www.bing.com"); // getTitle()获取当前页面title的值 System.out.println("当前打开页面的标题是: " + redriver.getTitle()); System.out.println(redriver.getSessionId()); System.out.println(redriver.getCapabilities()); System.out.println(((HttpCommandExecutor) redriver.getCommandExecutor()) .getAddressOfRemoteServer()); redriver.executeScript("alert(\"hello,this is an alert!\")"); // 关闭并退出浏览器 // driver.quit(); } }
【Quality】
Quality is the value to someone who matters。做测试,首先要找到这个someone是谁,以及这个 someone重视的 value是什么。