一、创建浏览器对象
//谷歌为例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.com/");//访问网页地址(第二种方式)driver.navigate().to("https://www.baidu.com/");//网页后退driver.navigate().back();//网页前进driver.navigate().forward();//刷新网页driver.navigate().refresh();
四、获取网页信息
//获取当前页面UrlString currentUrl = driver.getCurrentUrl();System.out.println(currentUrl);//获取当前页面源码String pageSource = driver.getPageSource();System.out.println(pageSource);//获取当前页面TitleString title = driver.getTitle();System.out.println(title);//获取当前窗口句柄String windowHandle = driver.getWindowHandle();System.out.println(windowHandle);//获取当前所有打开窗口的句柄Set 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 elements = driver.findElements(By.name("name值"));3.使用链接的全部文字定位WebElement webElement = driver.findElement(By.linkText("链接的全部文字内容"));List elements = driver.findElements(By.linkText("链接的全部文字内容"));4.使用部分链接的文字定位WebElement webElement = driver.findElement(By.partialLinkText("链接的部分文字内容"));List elements = driver.findElements(By.partialLinkText("链接的部分文字内容"));5.使用标签名称定位WebElement webElement = driver.findElement(By.tagName("页面中的HTML标签名称"));List elements = driver.findElements(By.tagName("页面中的HTML标签名称"));6.使用Class名称定位WebElement webElement = driver.findElement(By.className("页面中的Class属性值"));List elements = driver.findElements(By.className("页面中的Class属性值"));7.使用XPath方式定位WebElement webElement = driver.findElement(By.xpath("XPath定位表达式"));List elements = driver.findElements(By.xpath("XPath定位表达式"));8.使用CSS定位WebElement webElement = driver.findElement(By.cssSelector("CSS定位表达式"));List elements = driver.findElements(By.cssSelector("CSS定位表达式"));9.使用jQuery方式定位,先将driver转换为JavascriptExecutor对象,再调用jQuery的find方法查找页面元素,返回List对象JavascriptExecutor js = (JavascriptExecutor) driver;List elements =(List) 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();
持续更新中…