Java+Selenium3方法篇3-window接口相关方法介绍


本文继续介绍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这个是一个类,不是一个普通的数据类型,来看看如何写关于浏览器位置设置的自动化脚本。

  1. package lessons;  
  2.   
  3. import org.openqa.selenium.Point;  
  4. import org.openqa.selenium.WebDriver;  
  5. import org.openqa.selenium.chrome.ChromeDriver;  
  6.   
  7.   
  8. public class PageLoadTest {  
  9.       
  10. public static void main(String[] args) {  
  11.           
  12.         System.setProperty("webdriver.chrome.driver"".\\Tools\\chromedriver.exe");  
  13.           
  14.         WebDriver driver = new ChromeDriver();  
  15.           
  16.         // 注意targetPosition是一个点对象,把一个点作为参数传入,不能直接写(300, 600)  
  17.         Point targetPosition = new Point(300600);  
  18.         driver.manage().window().setPosition(targetPosition);  
  19.         System.out.println(driver.manage().window().getPosition());  
  20.           
  21.     }  
  22.   
  23.   
  24. }  
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浏览器会大概出现在屏幕的下方。

接下来看看如何设置浏览器窗口大小和获取窗口大小。

  1. package lessons;  
  2.   
  3. import org.openqa.selenium.Dimension;  
  4. import org.openqa.selenium.WebDriver;  
  5. import org.openqa.selenium.chrome.ChromeDriver;  
  6.   
  7.   
  8. public class PageLoadTest {  
  9.       
  10. public static void main(String[] args) {  
  11.           
  12.         System.setProperty("webdriver.chrome.driver"".\\Tools\\chromedriver.exe");  
  13.           
  14.         WebDriver driver = new ChromeDriver();  
  15.           
  16.         // 注意targetSize是一个对象传入,也不可以直接写成 1024*768  
  17.         Dimension targetSize = new Dimension(1024768);   
  18.         driver.manage().window().setSize(targetSize);  
  19.         System.out.println(driver.manage().window().getSize());  
  20.           
  21.     }  
  22.   
  23. }  
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这个键。

  1. package lessons;  
  2.   
  3.   
  4.   
  5. import org.openqa.selenium.By;  
  6. import org.openqa.selenium.Keys;  
  7. import org.openqa.selenium.WebDriver;  
  8. import org.openqa.selenium.firefox.FirefoxDriver;  
  9.   
  10.   
  11. public class PageLoadTest {  
  12.       
  13. public static void main(String[] args) {  
  14.           
  15.         System.setProperty("webdriver.gecko.driver"".\\Tools\\geckodriver.exe");  
  16.           
  17.         WebDriver driver = new FirefoxDriver();  
  18.           
  19.         // 按下F11,可以看到全屏效果  
  20.         driver.get("https://www.baidu.com");  
  21.         //driver.manage().window().fullscreen();  
  22.           
  23.         driver.findElement(By.tagName("body")).sendKeys(Keys.F11);  
  24.           
  25.     }  
  26.   
  27. }  
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的设置浏览器窗口相关方法就介绍到这里。

猜你喜欢

转载自blog.csdn.net/bnuyangwu/article/details/80759159
今日推荐