注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

Selenium2.0自动化测试中遇到的问题及解决方法  

来自月沉吟   2012-09-05 17:03:54|  分类: 自动化测试 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Selenium2.0自动化测试学习使用过程中,遇到了一些问题,也找到了相应的解决方法。现总结一下,供大家一起分享讨论。

一、        点击页面上的链接,打开一个新页面,如何获取新窗口的句柄并定位?java代码如下:

 

driver.findElement(By.name("Submit")).click();

String currentWindow = driver.getWindowHandle();//获取当前窗口句柄

Set<String> handles = driver.getWindowHandles();//获取所有窗口句柄

Iterator<String> it = handles.iterator();

while (it.hasNext()) {

                if (currentWindow == it.next()) {

                         continue;

                }

                WebDriver window = driver.switchTo().window(it.next());//定位到新窗口

                System.out.println("Page title is:" + window.getTitle());

                window.close();//关闭新窗口

      }

      driver.switchTo().window(currentWindow);//回到原来页面

 

 

二、        无法找到页面按钮元素,或者页面按钮元素不可见。

Selenium2.0自动化中定位页面元素很重要,经常碰到“The element could not be found”或者“The element is not displayed”。

有些按钮元素无法定位或者不可见的真实情况是元素被定位到了,但是按键动作没有被捕获到。

怎么解决这个问题呢?幸好,selenium2.0可以处理本机键盘和鼠标事件。所以,可以采用引入键盘事件的方法解决按键动作无法被捕获的问题。Java代码如下:

 

public void Add() throws Exception {

driver.findElement(By.name("add')]")).sendkeys(“test”);

pressKeyboard(KeyEvent.VK_TAB);//确认增加

pressKeyboard(KeyEvent.VK_ENTER);

// pressKeyboard(KeyEvent.VK_ESCAPE); //取消增加

}

 

public void pressKeyboard(int KeyCode) {

Robot rb = null;

try {

      rb = new Robot();

      } catch (AWTException e) {

                    e.printStackTrace();

}

 

      rb.keyPress(KeyCode); // 按下按键

      rb.delay(100); // 保持100毫秒

      rb.keyRelease(KeyCode); // 释放按键

      }

 

  评论这张
 
阅读(3610)| 评论(4)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016