Selenium2(WebDriver)总结(五)---元素操作进阶(常用类)
2015-04-05 21:29
525 查看
1、Alert类
Alert是指windows弹窗的一些操作,需要new一个Alert类
driver.switchTo().alert():切换到alert窗口
alert.getText():取得弹窗上面的字符串
alert.accept():点击确定/ok类的按钮,使弹窗消失
alert.dismiss():取消
使用Actions类
先要new一个Actions的类对象
最后的perform()一定要加上,否则执行不成功
2、Action类
先要new一个Actions的类对象
最后的perform()一定要加上,否则执行不成功
3、调用JS
一般用来执行一段JS,来改变HTML
一些非标准控件无法用selenium2的API时,可以执行JS的办法来取代
executeScript这个方法的参数为字符串,为一段JS代码
4、Wait机制及实现
在规定的时间内只要符合条件即返回,下面的代码中是只要isDisplayed即返回
5、Iframe操作
如果iframe标签有能够唯一确定的id或者name,就可以直接用id或者name的值:driver.switchTo().frame("aa");
如果iframe标签没有id或者name,但能够通过页面上确定其是第几个(也就是通过index来定位iframe,index是从0开始的):driver.switchTo().frame(0);
还可以通过xpath的方式来定位iframe,写法如下:
WebElement iframe = driver.findElement(By.xpath("//iframe[@name='aa']"));
driver.switchTo().frame(iframe);
6、多窗口切换
gettWindowHandles:取得driver所打开的所有的页面的句柄
witchTo是指切换到相应的窗口中去,window中的参数是指要切过去的窗口的句柄
Alert是指windows弹窗的一些操作,需要new一个Alert类
driver.switchTo().alert():切换到alert窗口
alert.getText():取得弹窗上面的字符串
alert.accept():点击确定/ok类的按钮,使弹窗消失
alert.dismiss():取消
public void testAlert(){ WebElement element = driver.findElement(By.className("alert")); element.click(); Alert alert = driver.switchTo().alert(); String text = alert.getText(); alert.accept(); //alert.dismiss(); System.out.println(text); }
使用Actions类
先要new一个Actions的类对象
最后的perform()一定要加上,否则执行不成功
public void testAlertByActions(){ WebElement element = driver.findElement(By.className("alert")); Actions action = new Actions(driver); action.click(element).perform(); Alert alert = driver.switchTo().alert(); String text = alert.getText(); alert.accept(); //alert.dismiss(); System.out.println(text); }
2、Action类
先要new一个Actions的类对象
最后的perform()一定要加上,否则执行不成功
public void testActions(){ WebElement element = driver.findElement(By.className("over")); Actions action = new Actions(driver); action.moveToElement(element).perform(); String text = driver.findElement(By.id("over")).getText(); System.out.println(text); }
3、调用JS
一般用来执行一段JS,来改变HTML
一些非标准控件无法用selenium2的API时,可以执行JS的办法来取代
executeScript这个方法的参数为字符串,为一段JS代码
public void testJS(){ JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("alert('helloworld')"); }
4、Wait机制及实现
在规定的时间内只要符合条件即返回,下面的代码中是只要isDisplayed即返回
public void testWait(){ WebElement waitButton = driver.findElement(By.id("wait")); waitButton.click(); boolean flag = new WebDriverWait(driver, 10).until ( new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver driver) { return driver.findElement(By.className("red")).isDisplayed(); } } ); if(flag){ String text = driver.findElement(By.className("red")).getText(); System.out.println(text); } }
5、Iframe操作
如果iframe标签有能够唯一确定的id或者name,就可以直接用id或者name的值:driver.switchTo().frame("aa");
如果iframe标签没有id或者name,但能够通过页面上确定其是第几个(也就是通过index来定位iframe,index是从0开始的):driver.switchTo().frame(0);
还可以通过xpath的方式来定位iframe,写法如下:
WebElement iframe = driver.findElement(By.xpath("//iframe[@name='aa']"));
driver.switchTo().frame(iframe);
public void testIFrame(){ driver.findElement(By.id("user")).sendKeys("test"); driver.switchTo().frame("aa"); driver.findElement(By.id("user")).sendKeys("iframe test"); driver.switchTo().defaultContent();//返回顶层frame driver.findElement(By.id("user")).sendKeys("---new test"); }
6、多窗口切换
gettWindowHandles:取得driver所打开的所有的页面的句柄
witchTo是指切换到相应的窗口中去,window中的参数是指要切过去的窗口的句柄
public void testMultiWindow(){ driver.findElement(By.id("user")).sendKeys("test"); String handle = driver.getWindowHandle();//获取当前窗口的句柄 System.out.println(handle); WebElement element = driver.findElement(By.className("open")); element.click(); Set<String> handles = driver.getWindowHandles(); for(String s : handles) { if(!s.equals(handle)) { System.out.println(s); driver.switchTo().window(s); driver.findElement(By.id("kw")).sendKeys("glen"); } } driver.switchTo().window(handle); driver.findElement(By.id("user")).sendKeys("---new test"); }
相关文章推荐
- 总结Selenium自动化测试方法(四)WebDriver常用的操作
- Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
- Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
- Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
- Selenium Webdriver元素定位的八种常用方式(转)
- Selenium webdriver 学习总结-元素定位
- webdriver 关于元素的常用操作 python版本
- selenium webdriver 学习总结-元素定位
- Selenium Webdriver元素定位的八种常用方式
- selenium webdriver python 元素操作
- Selenium Webdriver元素定位的八种常用方式
- Selenium Webdriver元素定位的八种常用方式(转载)
- Selenium Webdriver元素定位的八种常用方式
- Selenium(五)――webdriver 之操作页面元素
- Selenium Webdriver元素定位的八种常用方式
- Selenium webdriver 学习总结-元素定位
- Selenium Webdriver元素定位的八种常用方式
- selenium2(WebDriver) API及常用操作
- Selenium2(WebDriver)总结(四)---基本元素操作
- Selenium Webdriver元素定位的八种常用方式