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. TXMLDocument use case (Delphi)

    Description This example illustrates the basic operations on an XML document. Code procedure CreateD ...

  2. Spring Boot开发之流水无情(二)

    http://my.oschina.net/u/1027043/blog/406558 上篇散仙写了一个很简单的入门级的Spring Boot的例子,没啥技术含量,不过,其实学任何东西只要找到第一个突 ...

  3. 应收事物处理删除 SQL 语句

    /* Formatted on 2018/3/15 10:07:48 (QP5 v5.256.13226.35538) */ --组织表 SELECT * FROM hr_organization_u ...

  4. navicat for mysql只导出数据表结构

    选中需要导出表结构的数据库,右键,在显示的菜单中选择“数据传输”这一项 ,在弹出窗口中“数据传输”单击选择“高级”一项,在“高级”中把“记录选项”中的勾去掉,在做一些设置,最后导出表数据就不会导出记录 ...

  5. 手游开发Android平台周边工具介绍

    1.渠道接入 主要是需要接入各平台的登录.充值接口,各家SDK又不统一,Android渠道都是鱼龙混杂,就算小渠道你看不上,但量多了,加起来也还可观,所以大家都拿出吃奶的尽去铺渠道.国内几大主要的An ...

  6. Build Web Apps in Node and Express视频下载

    上传到百度云了,点击这里下载>>    作者使用的是Mac系统,不过Windows也差不多,主要理解express一些基本配置和使用,讲的比较基础,希望对node.js.express有兴 ...

  7. Easyui numberbox获取焦点事件

    Html文件: <input id="auctionBrandNoGetByHand" style="width:160px;" class=" ...

  8. python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...

  9. PHP读写INI文件

    读INI文件 public function readini($name) { if (file_exists(SEM_PATH.'init/'.$name)){ $data = parse_ini_ ...

  10. SQLServer 日期函数大全 SQLServer 时间函数大全

    原文地址:https://www.cnblogs.com/zhangpengnike/p/6122588.html 一.统计语句 1.--统计当前[>当天00点以后的数据] SELECT * F ...