在selenium中一些相对常用的JavaScript事件
输入框输入:
1.找到输入框的id,然后进行输入操作
ordinal :输入框的id parameter :需要输入的内容 browser.execute_script("document.getElementById(\'" + ordinal + "\').value=\'" + parameter + "\';")
元素点击:
1..找到元素(selenium找元素的8种方式的其中一种即可)对象然后进行点击
python:
prompt该元素在页面中的cssSelector confirm = browser.find_element_by_css_selector(prompt)
browser.execute_script("arguments[0].click();", confirm)
java:
1.定义JavascriptExecutor 对象
2.找到element 对象
3.执行js指令
JavascriptExecutor jse = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.xpath("//*[@class='referBtn']/input"));
jse.executeScript("arguments[0].click();", element);
2.通过元素id进行点击
prompt:该元素在页面中的id
browser.execute_script("document.getElementById(\'" + prompt + "\').click();")
光标移动:
1. 光标选中输入框
ordinal :元素id browser.execute_script("document.getElementById(\'" + ordinal + "\').focus();" ) ele:元素对象 browser.execute_script("arguments[0].focus();", ele)
应用场景:鼠标位于输入框之后的一些事件。
代替:可用selenium中自带的鼠标移动(ActionChains)操作进行代替
2.光标从这个输入框中移出
ordinal :元素id
browser.execute_script("document.getElementById(\'" + ordinal + "\').blur();") ele:元素对象
browser.execute_script("arguments[0].blur();", ele)
应用场景:当光标不在输入框是,进行一些判断。
代替:可用selenium中自带的鼠标移动(ActionChains)操作进行代替
缺点:当你用js进行输入之后,在使用js移出指令时。输入框中事件的判断不会触发。。
搭配方式:
1.通过ele的输入+js移出指令。
例如:
ele = browser.find_element_by_id(id) ele.click() ele.clear()
ele.send_keys(parameter) browser.execute_script("arguments[0].blur();", ele)
2.通过js指令执行光标选中+js输入+js移除
ordinal:元素id
parameter:需要输入的元素 # 光标选中id为ordinal的输入框
browser.execute_script("document.getElementById(\'" + ordinal + "\').focus();" ) # 在元素id为ordinal的输入框中输入parameter值
browser.execute_script("document.getElementById(\'" + ordinal + "\').value=\'" + parameter + "\';") # 光标从id为ordinal的输入框中移出
browser.execute_script("document.getElementById(\'" + ordinal + "\').blur();")
页面滑动:
1.界面滑动到顶部
python:
driver.execute_script("window.scrollTo(0,0)")
java:
((JavascriptExecutor) driver).executeScript("window.scrollTo(0,0)");
2.界面滑动到底部
python:
# 界面移动底部 driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
java:
//界面移动底部 ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");
3.界面滑动到指定位置:
python:
# 界面往下移动700像素
driver.execute_script("window.scrollTo(0,700)")
java:
//界面往下移动700像素 ((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 700)");
4.界面滑动到指定元素位置(如果使用这个命令,那么元素位于屏幕中间。。----如有错误,请留言。。)
python:
# 移动到元素element对象的“顶端”与当前窗口的“顶部”对齐 driver.executeScript("arguments[0].scrollIntoView();", element)
java:
//移动到元素element对象的指定的位置 ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoViewIfNeeded(true);",element);
注:后续更新,不懂的可以留言。请勿喷。!!!~~~~
在selenium中一些相对常用的JavaScript事件的更多相关文章
- JavaScript中,有三种常用的绑定事件的方法
要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的 ...
- javaScript事件绑定
事件绑定,就是要对某一个东西进行操作.(因为你想让他实现什么效果,所以就得绑定他,哈哈哈!) 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函 ...
- 7-74 JavaScript 事件
7-74 JavaScript 事件 学习要点 掌握常用的javaScript事件 基本概念 事件是一些特定动作发生时所发出的信号,JavaScript中的事件是可以被 JavaScript 侦测到的 ...
- JavaScript事件代理和委托
在javasript中,代理.委托经常出现. 那么它究竟在什么样的情况下使用?它的原理又是什么? 这里介绍一下javascript delegate的用法和原理,以及Dojo,jQuery等框架中de ...
- Python selenium中注入并执行Javascript语句
众所周知,Python通常结合selenium模块来完成一些web的自动化测试以及RPA(Robotic Process Automation)工作.事实上,Selenium还可以支持插入js语句.执 ...
- javascript中数组的常用算法深入分析
Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...
- GOF提出的23种设计模式是哪些 设计模式有创建形、行为形、结构形三种类别 常用的Javascript中常用设计模式的其中17种 详解设计模式六大原则
20151218mark 延伸扩展: -设计模式在很多语言PHP.JAVA.C#.C++.JS等都有各自的使用,但原理是相同的,比如JS常用的Javascript设计模式 -详解设计模式六大原则 设计 ...
- Selenium中核心属性以及方法
一.操作定位元素 selenium提供了定位元素的API,这些方法都被定义在webDriver类中,需要以find开头, 例如:find_Element_by_id('')
- 常用的JavaScript模式
模式是解决或者避免一些问题的方案. 在JavaScript中,会用到一些常用的编码模式.下面就列出了一些常用的JavaScript编码模式,有的模式是为了解决特定的问题,有的则是帮助我们避免一些Jav ...
随机推荐
- 收藏CSS经典技巧
一. CSS字体属性简写规则 一般用CSS设定字体属性是这样做的: font-weight: bold; font- style: italic; font-varient: small-caps; ...
- Reactor和Proactor模式的讲解(关于异步,同步,阻塞与非阻塞)
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作. 在比较这两个模式之前,我们首先的搞明白 ...
- iOS tableview上textView在编辑状态时,tableview自动上移的功能
在viewcognroller中,添加tableview时, tableview中cell上的textField如果吊起键盘时,tableview时可以自动上移,但是如果是textView吊起键盘,t ...
- 下载数据到Excel,工具类
使用反射将model数据下载到Excel中 package test.upload.utils; import java.lang.reflect.Method; import java.math.B ...
- TUN/TAP区别
在计算机网络中,TUN与TAP是操作系统内核中的虚拟网络设备.不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能. TA ...
- 猫猫学iOS 之微博项目实战(2)微博主框架-自己定义导航控制器NavigationController
猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 一:加入导航控制器 上一篇博 ...
- 万恶之源:C语言中的隐式函数声明
1 什么是C语言的隐式函数声明 在C语言中,函数在调用前不一定非要声明.如果没有声明,那么编译器会自己主动依照一种隐式声明的规则,为调用函数的C代码产生汇编代码.以下是一个样例: int main(i ...
- Mapreduce运行过程分析(基于Hadoop2.4)——(三)
4.4 Reduce类 4.4.1 Reduce介绍 整完了Map,接下来就是Reduce了.YarnChild.main()->ReduceTask.run().ReduceTask.run方 ...
- List<Guid?> a = new List<Guid?>();
正常写法 泛型 类型 为 Guid? List<Guid?> a = new List<Guid?>(); Guid? b = null; Nullable<Guid&g ...
- 笔记本 ThinkPad E40 安装 Mac OS X 10.9.3 Mavericks 系统
关于:自己最早接触Mac OS X系统是在一个论坛里.记得好像是2011年:那时论坛里就有人在虚拟机上执行Mac OS X 10.7系统.当时也依照论坛里的方法在虚拟机上成功装上了系统.那时開始就被苹 ...