1.帮助业务线开发case,涉及到一些使用了selenium的语句,复习如下
关闭当前窗口以外的其他窗口
Set<String> activeWidows = driver.getWindowHandles();//获取浏览器的所有页面句柄;
String currentWindow = driver.getWindowHandle();//获取当前需要保留的页面句柄
for (String aw : activeWidows) {//遍历浏览器中所有页面
if (!aw.equals(currentWindow)) {//如果当前页面句柄不等于要保留的页面句柄
driver.switchTo().window(aw); //跳转至当前页面
driver.close(); //关掉当前页面
driver.switchTo().window(currentWindow); //跳回要保留的页面
}
}
利用xpath语句,寻找部分匹配的文本
driver.findElement(By.xpath(//*[contains(text(),txt)]));
//代表根目录;*代表任意元素;[]代表条件;contains(x,y)是一个函数,检查第一个参数字符串是否包含第二个参数字符串。
关于cookie
selenium中有个专门的函数driver.manage().addCookie(cookie);,其中cookie有多个构造函数,目前测试最多可以接受7个参数(String name, String value, String domain, String path, Date expiry, boolean isSecure, boolean isHttpOnly),其中name和value就是从浏览器获取的json格式的数据;domain是作用域,比如豆瓣网获取的cookie只能应用于domain是.douban.com的网站;path不太了解;expiry是过期时间;isSecure当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容;ishttpOnly如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。
关于查找元素
driver.findElement(By.cssSelector("[class='" + classname + "']") )