1、Alert类

  1. Alert是指windows弹窗的一些操作,需要new一个Alert类
  2. driver.switchTo().alert():切换到alert窗口
  3. alert.getText():取得弹窗上面的字符串
  4. alert.accept():点击确定/ok类的按钮,使弹窗消失
  5. 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类

  1. 先要new一个Actions的类对象
  2. 最后的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类

  1. 先要new一个Actions的类对象
  2. 最后的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 

  1. 一般用来执行一段JS,来改变HTML
  2. 一些非标准控件无法用selenium2的API时,可以执行JS的办法来取代
  3. 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操作

  1. 如果iframe标签有能够唯一确定的id或者name,就可以直接用id或者name的值:driver.switchTo().frame("aa");
  2. 如果iframe标签没有id或者name,但能够通过页面上确定其是第几个(也就是通过index来定位iframe,index是从0开始的):driver.switchTo().frame(0);
  3. 还可以通过xpath的方式来定位iframe,写法如下:
    1. WebElement iframe = driver.findElement(By.xpath("//iframe[@name='aa']"));
    2. 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、多窗口切换

  1. gettWindowHandles:取得driver所打开的所有的页面的句柄
  2. 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");
}

Selenium2(WebDriver)总结(五)---元素操作进阶(常用类)的更多相关文章

  1. JavaScript常用操作,常用类

    算术运算符 重点关注 算数,赋值,逻辑运算符,三目运算符 <!DOCTYPE html> <html> <head> <meta charset=" ...

  2. java的eclipse操作和常用类Object的使用

    1.eclipse的快捷键: (1)alt + /   内容辅助. 如:main+alt + / 会出现完整的main方法. syso+alt+ / 会输出. 如编写某个方法时,只需写入方法名 + a ...

  3. Selenium2(WebDriver)总结(四)---基本元素操作

    WebDriver提供了常用的WEB控件的操作方法,比如:按钮.输入框.超链接等,废话不多说,直接上代码: import org.openqa.selenium.By; import org.open ...

  4. Selenium2(WebDriver)总结(三)---元素定位方法

    元素定位的重要性不言而喻,如果定位不到元素谈何操作元素呢,webdrvier提供了很多种元素定位方法,如ID,Name,xpath,css,tagname等. 例如需要定位如下元素: <inpu ...

  5. Java第五天,API常用类,静态(static)、集合(ArrayList)、日期(Date)、日历(Calendar)的使用方法

    上文中我们学习到了Random随机数类和ArrayList<E>集合.这两个知识点都是经常用到的,那么除了这两个外,还有哪些知识点是我们所必须掌握的呢? static 使用static需要 ...

  6. selenium + python自动化测试unittest框架学习(三)webdriver元素操作(二)

    上一篇是元素的定位,那么定位元素的目的就是对元素进行操作,例如写入文本,点击按钮,拖动等等的操作 (1)简单元素操作 简单元素操作 find_element_by_id("kw") ...

  7. selenium - 常用元素操作

    # 3.常用元素操作 # 元素对象的获取ele = driver.find_element_by_XXX('定位表达式') # 获取元素的文本内容(返回值为元素的文本)ele.text # 获取元素的 ...

  8. selenium中元素操作之浏览器窗口滚动&网页日期控件操作(js操作)(五)

    js的滚动条scrollIntoView() Arguments[] - python与js之间的羁绊 1.移动到元素element对象的“底端”,与当前窗口的“底部”对齐: driver.execu ...

  9. Selenium webdriver 元素操作

    本来这些东西网上一搜一大堆,但是本着收集的精神,整理一份放着吧!哈!哈!哈! 1. 输入框(text field or textarea) WebElement element = driver.fi ...

随机推荐

  1. [Win32]获取指定进程的父进程PID

    // // #include <Windows.h> #include <winnt.h> #include <winternl.h> typedef NTSTAT ...

  2. C#编程(三十七)----------结构比较

    结构比较 数组和元组都实现接口IStructuralEquatable和IStructuralComparable.这两个接口不仅可以比较引用,还可以比较内容.这些接口都是显示实现的,所以在使用时需要 ...

  3. Module ngx_http_v2_module

    官方配置说明: http://nginx.org/en/docs/http/ngx_http_v2_module.html#example ngx_http_v2_module模块指令中文说明 ngx ...

  4. SharePoint Set-SPUser 命令拒绝访问

    · 前言 最近碰到一个问题,由于User Profile Service服务有问题,用户信息无法更新.所以,想到Set-SPUser命令可以更新,于是乎找到这个命令,但是更新的时候发现拒绝访问的错误. ...

  5. 黑镜第一至二季/全集Black Mirror迅雷下载

    本季第一.二季 Black Mirror (2011-2013)看点:<黑镜>(Black Mirror)是一部由查理·布洛克主创.英国电视4台(Channel 4)于2011年12月播出 ...

  6. Android NDK:Aborting..Stop的处理方法

    在eclipse中配置cocos2d-x的android环境时,遇到这样的错误提示 网上搜索了一下,说是在NDK_MODULE_PATH环境变量下未找到所需要的Android.mk文件,后来仔细研究了 ...

  7. Android之一种很有趣的界面跳动提示动画

    上一个效果图: ==================================== 先上布局: <RelativeLayout xmlns:android="http://sch ...

  8. Asp.net WebAPI Ioc

    网上关于webapi Ioc 的东西很多,如http://efmvc.codeplex.com/SourceControl/latest#MyFinance.Web/Global.asax.cs 这是 ...

  9. CSS-图片不变形设置

    不管网页做的美还是丑,有一个问题始终是无法躲避的,就是有的时候会遇到图片变形的问题,之前遇到过这种问题解决过,不过还是整体的重新研究了一下图片,其中主要涉及到的知识点就是max-width和max-h ...

  10. 机器学习、NLP、Python和Math最好的150余个教程(建议收藏)

    编辑 | MingMing 尽管机器学习的历史可以追溯到1959年,但目前,这个领域正以前所未有的速度发展.最近,我一直在网上寻找关于机器学习和NLP各方面的好资源,为了帮助到和我有相同需求的人,我整 ...