输入框输入:

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事件的更多相关文章

  1. JavaScript中,有三种常用的绑定事件的方法

    要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的 ...

  2. javaScript事件绑定

    事件绑定,就是要对某一个东西进行操作.(因为你想让他实现什么效果,所以就得绑定他,哈哈哈!) 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函 ...

  3. 7-74 JavaScript 事件

    7-74 JavaScript 事件 学习要点 掌握常用的javaScript事件 基本概念 事件是一些特定动作发生时所发出的信号,JavaScript中的事件是可以被 JavaScript 侦测到的 ...

  4. JavaScript事件代理和委托

    在javasript中,代理.委托经常出现. 那么它究竟在什么样的情况下使用?它的原理又是什么? 这里介绍一下javascript delegate的用法和原理,以及Dojo,jQuery等框架中de ...

  5. Python selenium中注入并执行Javascript语句

    众所周知,Python通常结合selenium模块来完成一些web的自动化测试以及RPA(Robotic Process Automation)工作.事实上,Selenium还可以支持插入js语句.执 ...

  6. javascript中数组的常用算法深入分析

    Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...

  7. GOF提出的23种设计模式是哪些 设计模式有创建形、行为形、结构形三种类别 常用的Javascript中常用设计模式的其中17种 详解设计模式六大原则

    20151218mark 延伸扩展: -设计模式在很多语言PHP.JAVA.C#.C++.JS等都有各自的使用,但原理是相同的,比如JS常用的Javascript设计模式 -详解设计模式六大原则 设计 ...

  8. Selenium中核心属性以及方法

    一.操作定位元素 selenium提供了定位元素的API,这些方法都被定义在webDriver类中,需要以find开头, 例如:find_Element_by_id('')

  9. 常用的JavaScript模式

    模式是解决或者避免一些问题的方案. 在JavaScript中,会用到一些常用的编码模式.下面就列出了一些常用的JavaScript编码模式,有的模式是为了解决特定的问题,有的则是帮助我们避免一些Jav ...

随机推荐

  1. ubuntu,CentOS永久修改主机名

    1.查看主机名 在Ubuntu系统中,快速查看主机名有多种方法: 其一,打开一个GNOME终端窗口,在命令提示符中可以看到主机名,主机名通常位于“@”符号后: 其二,在终端窗口中输入命令:hostna ...

  2. 使用mysql-connector-java.jar连接MySql时出现:Error while retrieving metadata for procedure columns: java.sql.SQLException: Parameter/Column name pattern can not be NULL or empty.

    错误如下: 程序实现的功能是调用一个存储过程,但是不认这个存储过程的参数. 原因是版本太高了,由于使用的是6.0.6版本的,改成5.1.38即可. POM配置如下: <!-- mysql-con ...

  3. eclipse bug之'<>'operator is not allowed for source level below 1.7

    eclipse中导入工程,报这个错'<>'operator is not allowed for source level below 1.7,把jdk改成1.7后,提示Android r ...

  4. zz年度热门编程语言排行榜

    原文在这里:Link 蛮有意思的,可以看看.

  5. Android中的图片查看器

    本案例,使用Eclipse来开发Android2.1版本号的图片查看器. 1)首先,打开Eclipse.新建一个Android2.1版本号的项目ShowTu,打开res/values中文件夹下的str ...

  6. 开源yYmVc项目,邀您和我一起开发:)

    打算在闲暇时间写个MVC框架,要有什么功能一步一步边写边加,仿照struts 2 和 spring mvc.假设您感兴趣的话,能够私密我,给您加入key:). 欢迎您的到来~ 项目放在基于GIT的CS ...

  7. BZOJ 1122 POI2008 账本BBB 单调队列

    题目大意:给定一个由+1和−1构成的长度为n的序列,提供两种操作: 1.将某一位取反,花销为x 2.将最后一位移动到前一位.花销为y 要求终于p+sumn=q.且p+sumi≥0(1≤i≤n),求最小 ...

  8. 手把手教你_怎么找android应用的包名和启动activity

    自己主动化測试中常常遇到这个问题,关于这个题目,方法众多,咱的目的是找个比較简单靠谱的: 方法一: 先进入cmd窗体,adb shell 后: cd /data/data ls 能够看到包名了吧,缺点 ...

  9. make运行阶段划分

    1 make执行分为两个阶段 第一个阶段:读makefile并且建树阶段 第二个阶段:构建目标阶段 2 扩展的立即和推迟 在第一个阶段的扩展是立即,在第二个阶段或者在需要的时候再扩展是推迟,这里的需要 ...

  10. Python代码分析工具

    Python代码分析工具:PyChecker.Pylint - CSDN博客 https://blog.csdn.net/permike/article/details/51026156