Selenium 常用方法
打开浏览器
//初始化一个chrome浏览器实例,实例名称叫driver
WebDriver driver = new ChromeDriver();
//最大化窗口
driver.manage().window().maximize();
//打开一个站点
driver.get("https://www.baidu.com");
//getTitle()获取当前页面title的值
driver.getTitle();
//getTitle()获取当前页面url
driver.getCurrentUrl();
Navigation接口
// to(String url)在当前页打开新的网页
driver.navigate().to("http://news.baidu.com");
// back()后退到百度首页
driver.navigate().back();
// forward() 前进到百度新闻
driver.navigate().forward();
// 刷新当前页
driver.navigate().refresh();
查找元素
//By id 查找元素
driver.findElement(By.id("kw"));
//By name
driver.findElement(By.name("wd"));
//By CSS
driver.findElement(By.cssSelector("#su"));
//By Xpath
driver.findElement(By.xpath(".//*[@id='su']"));
操作元素
//输入文本
driver.findElement(By.id("kw")).sendKeys("10");
//点击
driver.findElement(By.id("kw")).click();
//得到文本
driver.findElement(By.id("kw")).getText();
//清除文本
driver.findElement(By.id("kw")).clear();
//得到元素属性
driver.findElement(By.id("kw")).getAttribute("type");
//获得当前页面的title
driver.getTitle();
//获得当前页面的URL
driver.getCurrentUrl();
//提交表单。 例如,在搜索框输入关键字之后的“回车” 操作, 就可以通过 submit()方法模拟.
WebElement search_text = driver.findElement(By.id("kw"));
search_text.sendKeys("Selenium");
search_text.submit();
// 关闭并退出浏览器
driver.quit();
模拟键盘操作
WebElement input = driver.findElement(By.id("kw"));
//输入框输入内容
input.sendKeys("seleniumm");
//删除多输入的一个x
input.sendKeys(Keys.BACK_SPACE);
//输入空格键
input.sendKeys(Keys.SPACE);
//ctrl+a 全选输入框内容
input.sendKeys(Keys.CONTROL,"a");
//ctrl+x 剪切输入框内容
input.sendKeys(Keys.CONTROL,"x");
//ctrl+v 粘贴内容到输入框
input.sendKeys(Keys.CONTROL,"v");
//通过回车键盘来代替点击操作
input.sendKeys(Keys.ENTER);
模拟鼠标操作
//-------定义一个action对象
Actions action = new Actions(driver);
//-------单击操作
action.click();
action.click(searchBt);
//-------双击操作
action.doubleClick().perform();
action.doubleClick(searchBt).perform();
//-------悬停操作
action.clickAndHold().perform();
action.clickAndHold(searchBt).perform();
//-------右击操作
action.contextClick().perform();
action.contextClick(searchBt).perform();
//-------拖拽操作 从一个元素拖拽到目标元素
action.dragAndDrop(searchBt, searchBt).perform();
定位一组元素
//定位一组元素
List<WebElement> search_result = driver.findElements(By.xpath("//div/div/h3"));
多表单切换
WebElement xf = driver.findElement(By.xpath("//*[@id='loginDiv']/iframe"));
driver.switchTo().frame(xf);//driver切换到frame中
driver.switchTo().defaultContent();//driver跳出frame
多窗口切换
//获得当前窗口句柄
String handle = driver.getWindowHandle();
//获得所有窗口句柄
Set<String> handles = driver.getWindowHandles();
//切换窗口
driver.switchTo().window(handle);