本文继续介绍WebDriver.java这个文件里面的接口方法,上一篇介绍了timeout接口内相关方法,这篇文章介绍window接口。windows接口下有几个方法,主要是用来控制浏览器窗口设置,例如窗口大小,最大,最小,全屏,位置。我们先来看看window接口下有什么方法。
void setSize(Dimension targetSize);
void setPosition(Point targetPosition);
Dimension getSize();
Point getPosition();
void maximize();
void fullscreen();
我们前面使用过了maximize(),这里就不再介绍,第一个我们介绍setSize(Dimension targetSize)和getPosition(),这里要注意下参数 targetSize这个是一个类,不是一个普通的数据类型,来看看如何写关于浏览器位置设置的自动化脚本。
package lessons;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class PageLoadTest {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
// 注意targetPosition是一个点对象,把一个点作为参数传入,不能直接写(300, 600)
Point targetPosition = new Point(300, 600);
driver.manage().window().setPosition(targetPosition);
System.out.println(driver.manage().window().getPosition());
}
}
运行结果,chrome浏览器会大概出现在屏幕的下方。
接下来看看如何设置浏览器窗口大小和获取窗口大小。
package lessons;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class PageLoadTest {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
// 注意targetSize是一个对象传入,也不可以直接写成 1024*768
Dimension targetSize = new Dimension(1024, 768);
driver.manage().window().setSize(targetSize);
System.out.println(driver.manage().window().getSize());
}
}
运行下,看看效果,为了对比,你改成最大化窗口,然后打印出窗口大小出来,看看是不是接近你设置的屏幕分辨率。
关于全屏这个方法的调用,我在chrome和fiefox都出现了异常,其中chrome报错:Exception in thread "main" org.openqa.selenium.WebDriverException: unimplemented command: session/0486e6678304219164f92f27b67d313a/window/fullscreen
Command duration or timeout: 10 milliseconds
为了解决这个全屏问题,这里我们需要借助按下F11这个键。
package lessons;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PageLoadTest {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", ".\\Tools\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
// 按下F11,可以看到全屏效果
driver.get("https://www.baidu.com");
//driver.manage().window().fullscreen();
driver.findElement(By.tagName("body")).sendKeys(Keys.F11);
}
}
最后一行的代码,你先不要去理解什么意思,后面会具体介绍。关于driver的设置浏览器窗口相关方法就介绍到这里。