Selenium2.0总结(5)
来源:互联网 发布:程序员算法书籍 编辑:程序博客网 时间:2024/06/05 20:51
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); // 释放按键
}
- Selenium2.0总结(5)
- Selenium2.0总结3
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(一)
- 参与一个开源项目
- 同步,异步,阻塞,非阻塞的理解
- Python 类的实 例化
- yii关联
- ogre如何渲染CEGUI
- Selenium2.0总结(5)
- 大公司里技术专家转做基层PO,前途何在?
- 视频编解码学习之一:理论基础
- C# 委托知识总结
- 用户故事使用中的十大错误
- DsoFramer2
- 适配器模式(Adapter Pattern)、外观模式(Facade Pattern)
- 回顾有“C++”陪伴的日子
- shell循环语句