一、创建浏览器对象
//谷歌为例 System.setProperty("webdriver.chrome.driver", "src\\drivers\\chromedriver.exe"); WebDriver driver = new ChromeDriver();
二、设置窗口位置、大小
//设置浏览器窗口位置,相对于屏幕左上角(0,0)的位置 Point point = new Point(100, 100); driver.manage().window().setPosition(point); //设置浏览器窗口大小 Dimension dimension = new Dimension(500, 500); driver.manage().window().setSize(dimension); //获取浏览器窗口位置 Point position = driver.manage().window().getPosition(); System.out.println(position); //获取浏览器窗口大小 Dimension size = driver.manage().window().getSize(); System.out.println(size); //浏览器窗口最大化 driver.manage().window().maximize(); //全屏 driver.manage().window().fullscreen();
三、访问网页操作
//访问网页地址(第一种方式) driver.get("https://www.hao123.***/"); //访问网页地址(第二种方式) driver.navigate().to("https://www.baidu.***/"); //网页后退 driver.navigate().back(); //网页前进 driver.navigate().forward(); //刷新网页 driver.navigate().refresh();
四、获取网页信息
//获取当前页面Url String currentUrl = driver.getCurrentUrl(); System.out.println(currentUrl); //获取当前页面源码 String pageSource = driver.getPageSource(); System.out.println(pageSource); //获取当前页面Title String title = driver.getTitle(); System.out.println(title); //获取当前窗口句柄 String windowHandle = driver.getWindowHandle(); System.out.println(windowHandle); //获取当前所有打开窗口的句柄 Set<String> windowHandles = driver.getWindowHandles(); for (String handle : windowHandles) { System.out.println(handle); }
五、切换窗口
driver.switchTo().window("要切换的窗口句柄");
六、截图保存
File fileTo = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); try { FileInputStream fileInputStream = new FileInputStream(fileTo); FileOutputStream fileOutputStream = new FileOutputStream("test.png"); byte[] bytes = new byte[1024]; int len = 0; while ((len = fileInputStream.read(bytes))!=-1){ fileOutputStream.write(bytes); }; } catch (IOException e) { e.printStackTrace(); }
七、关闭窗口
//杀掉浏览器进程-谷歌为例(注意:此方法杀掉了所有谷歌进程,包括自己打开的和程序打开的) WindowsUtils.killByName("chrome.exe"); //关闭当前窗口,如果仅剩一个窗口,则退出浏览器 driver.close(); //退出浏览器 driver.quit();
八、元素定位
1.使用ID定位 WebElement webElement = driver.findElement(By.id("ID值")); 2.使用name定位 WebElement webElement = driver.findElement(By.name("name值")); List<WebElement> elements = driver.findElements(By.name("name值")); 3.使用链接的全部文字定位 WebElement webElement = driver.findElement(By.linkText("链接的全部文字内容")); List<WebElement> elements = driver.findElements(By.linkText("链接的全部文字内容")); 4.使用部分链接的文字定位 WebElement webElement = driver.findElement(By.partialLinkText("链接的部分文字内容")); List<WebElement> elements = driver.findElements(By.partialLinkText("链接的部分文字内容")); 5.使用标签名称定位 WebElement webElement = driver.findElement(By.tagName("页面中的HTML标签名称")); List<WebElement> elements = driver.findElements(By.tagName("页面中的HTML标签名称")); 6.使用Class名称定位 WebElement webElement = driver.findElement(By.className("页面中的Class属性值")); List<WebElement> elements = driver.findElements(By.className("页面中的Class属性值")); 7.使用XPath方式定位 WebElement webElement = driver.findElement(By.xpath("XPath定位表达式")); List<WebElement> elements = driver.findElements(By.xpath("XPath定位表达式")); 8.使用CSS定位 WebElement webElement = driver.findElement(By.cssSelector("CSS定位表达式")); List<WebElement> elements = driver.findElements(By.cssSelector("CSS定位表达式")); 9.使用jQuery方式定位,先将driver转换为JavascriptExecutor对象,再调用jQuery的find方法查找页面元素,返回List对象 JavascriptExecutor js = (JavascriptExecutor) driver; List<WebElement> elements = (List<WebElement>) js.executeScript("return jQuery.find('jQuery定位表达式')");
九、元素操作
WebElement element= driver.findElement(By.id("id值")); 1.清空输入框 element.clear(); 2.输入框输入文字 element.sendKeys("Selenium"); 3.点击元素 element.click(); 4.获取标签名称 String tagName = element.getTagName(); 5.获取属性值 String id = element.getAttribute("id"); 6.获取CSS属性值 String width = element.getCssValue("width"); 7.获取元素是否可见 boolean displayed = element.isDisplayed(); 8.获取元素是否可点击 boolean enabled = element.isEnabled(); 9.获取元素是否被选中 boolean selected = element.isSelected();
持续更新中...