selenium webdriver 的事件处理



package www.zr.com; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.events.AbstractWebDriverEventListener; public class zr_EventListener extends AbstractWebDriverEventListener { //表示需要侦听浏览器浏览到某个页面后触发的事件
@Override
public void afterNavigateTo(String url,WebDriver driver)
{
System.out.printf("after Navigate To "+url);
} //表示需要侦听浏览器回退浏览某个页面后触发的事件
@Override
public void afterNavigateBack(WebDriver driver)
{
System.out.printf("after Navigate Back To "+driver.getCurrentUrl());
} //表示需要侦听鼠标单击页面上某个元素后触发的事件
@Override
public void afterClickOn(WebElement webElement,WebDriver driver)
{
System.out.printf("after Click On "+webElement.getText());
}
}


import org.openqa.selenium.support.events.EventFiringWebDriver;
import www.zr.com.zr_EventListener; public class autorunner_test { public static void main (String [] args)
{ //测试网址
String url = "http://www.zr.com"; //Chromedriver.exe 文件地址
String Chromedriver_fileAddress = "C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe";
//设置环境变量
System.setProperty("webdriver.chrome.driver", Chromedriver_fileAddress);
/******用固定端口打开应用************/
ChromeDriverService.Builder builder = new ChromeDriverService.Builder();
ChromeDriverService chromeService = builder.usingDriverExecutable(new File(Chromedriver_fileAddress)).usingPort(3333).build(); try{
chromeService.start();
}catch(IOException e){
e.printStackTrace();
} WebDriver xuyun_driver = new ChromeDriver(chromeService);
/******用固定端口打开应用************/
//侦听事件
EventFiringWebDriver eventFiringDriver = new EventFiringWebDriver(xuyun_driver);
zr_EventListener zrEventListener = new zr_EventListener(); eventFiringDriver.register(zrEventListener);
eventFiringDriver.get(url);
eventFiringDriver.findElement(By.id("personBtn")).click();
}
}
运行结果:
after Navigate To http://www.zr.com
after Click On 请登录
selenium webdriver 的事件处理的更多相关文章
- Selenium WebDriver Code
Selenium WebDriver 用于模拟浏览器的功能,可以做网站测试用,也可以用来做crawler.我是用eclipse开发的,导入selenium-server-standalone-***. ...
- 使用httpclient 调用selenium webdriver
结合上次研究的selenium webdriver potocol ,自己写http request调用remote driver代替selenium API selenium web driver ...
- selenium webdriver 右键另存为下载文件(结合robot and autoIt)
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...
- Selenium Webdriver java 积累一
Selenium Webdriver 学习: http://jarvi.iteye.com/category/203994 https://github.com/easonhan007/webdriv ...
- Selenium的PO模式(Page Object Model)|(Selenium Webdriver For Python)
研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数 ...
- Selenium Webdriver下click失效问题解决
最近在使用Selenium Webdriver(Selenium2.0)进行界面自动化测试的时候发现单击事件无效,通过driver.findElement的方式是可以找到click元素的,但是就是cl ...
- 如何用selenium webdriver 捕获js error
### 问题 捕捉页面上js error ### 解决办法 从Selenium webdriver log 中解析 # -*- coding:utf8 -*- import unittest from ...
- Selenium WebDriver 之 PageObjects 模式 by Example
目录 1. 项目配置 2. 一个WebDriver简单例子 3. 使用Page Objects模式 4. 总结 5. Troubleshooting 6. 参考文档 本篇文章通过例子来阐述一下Sele ...
- Selenium webdriver 操作日历控件
一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如: 但是,有的日期控件是readonly的 比如1 ...
随机推荐
- 数据库oracle(PGA+SGA分配机制)
一.名词解释 (1)SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. ( ...
- css清除浮动float的几种方法
摘要: css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响? 一.抛一块问题砖(display: block)先看现象: 这里我没有给最外层的DIV.outer 设置高度, ...
- 【lightoj-1025】The Specials Menu(区间DP)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1025 [题目大意] 求一个字符串删去任意字符可以构成多少个不同的回文串 [分析 ...
- C++轮子队 敏捷冲刺
团队Github地址:https://github.com/Pryriat/2048.git 敏捷开发——第1天 Alpha阶段第1次Scrum Meeting 敏捷开发起始时间 2018/10/27 ...
- webservice SOAP WSDL UDDI简介
WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...
- SpringMVC中WebDataBinder的应用及原理
Controller方法的参数类型可以是基本类型,也可以是封装后的普通Java类型.若这个普通Java类型没有声明任何注解,则意味着它的每一个属性都需要到Request中去查找对应的请求参数.众所周 ...
- canvas - 圆圈内 hover效果
链接
- velocity与map
1. 遍历map map<String, Object> mapData = new HashMap<String, Object>(); mapData.put(" ...
- [置顶]
Android 关于BottomDialogSheet 与Layout擦出爱的火花?
今天上班做那个类似于ios拍照的那种效果图 就是个垂直布局然后里面textview+分割线+textview+button 当然也可以用button+分割线+button 方法有很多,选择适合自己的就 ...
- Friendly ARM linux交叉编译问题解决
ARM-LINUX-GCC 安装参考:(笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境) 然而安装完成之后运行 arm-linux-gcc -v (注意g ...