Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法,比如浏览 器的大小以及浏览器后退、前进按钮等。
(1)控制浏览器窗口大小
在不同的浏览器大小下访问测试站点,对测试页面截图并保存,然后观察或使用图像比对工具对被测 页面的前端样式进行评测。比如可以将浏览器设置成移动端大小(480x800),然后访问移动站点,对其样式 进行评估;WebDriver 提供了 setSize() 方法来设置浏览器的大小。
package selenium_pro1;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Browser {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("seting brwoser");
//设置chrome的安装路径
System.setProperty ("webdriver.chrome.bin" , "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" );
//设置chromedriver路径
System.setProperty("webdriver.chrome.driver", "D:\\selenium\\chromedriver.exe");
WebDriver driver= new ChromeDriver();
//设置浏览器窗口大小
driver.manage().window().setSize(new Dimension(480, 800));
driver.get("http://m.mail.10086.cn");
driver.quit();
}
}
在 PC 端运行执行自动化测试脚本大多的情况下是希望浏览器在全屏幕模式下执行,那么可以使用 maximize()方法,其用法与 maximize()相同,但它不需要传参。
(2)控制浏览器后退、前进
在使用浏览器浏览网页的时候,浏览器提供了后退和前进按钮,可以方便的对浏览过的网页之间切换, 那么 WebDriver 也提供了对应的 back()和 forward()方法来模拟后退和前进按钮。下面通过例子来演示这两 个方法的使用。
package selenium_pro1;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Browser_go {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("broser back and forward.");
//设置chrome的安装路径
System.setProperty ("webdriver.chrome.bin" , "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" );
//设置chromedriver路径
System.setProperty("webdriver.chrome.driver", "D:\\selenium\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String firstUrl = "http://www.baidu.com";
System.out.printf("now accesss %s \n", firstUrl);
driver.get(firstUrl);
String secondUrl = "http://news.baidu.com";
System.out.printf("now accesss %s \n", secondUrl);
driver.get(secondUrl);
System.out.printf("now back to %s \n", firstUrl);
driver.navigate().back();
System.out.printf("forward to %s \n", secondUrl);
driver.navigate().forward();
// driver.quit();
}
}
为了使脚本的执行过程看得更清晰,在每操作一步都通过 println 来打印当前的 URL 地址。执行结果如下:
broser back and forward.
Starting ChromeDriver 2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91) on port 17535
Only local connections are allowed.
四月 02, 2018 10:19:55 上午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Detected dialect: OSS
now accesss http://www.baidu.com
now accesss http://news.baidu.com
now back to http://www.baidu.com
forward to http://news.baidu.com