Selenium学习笔记之009:执行JS代码
来源:互联网 发布:linux常见的服务器配置 编辑:程序博客网 时间:2024/06/05 07:49
UI自动化离不开前端技术。JS可以做selenium 做不到的事情,但是在什么样的自动化的时候才能(或必须)要JS帮忙,我还没遇到过。不过JS可以selenium完成更强大的功能,这是不容置疑的。的同学可以自己补充下相关知识:http://www.w3school.com.cn/js/index.asp
调用JS方法:
execute_script(script, *args)
在当前窗口/框架 同步执行javaScript
脚本:JavaScript的执行。
*参数:适用任何JavaScript脚本。
使用:
driver.execute_script(‘document.title’)
#coding=utf-8from selenium import webdriverimport timedriver = webdriver.Firefox()driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fvod.kuaibo.com%2F%3Ft%3Dhome")#给用户名的输入框标红js="var q=document.getElementById(\"user_name\");q.style.border=\"1px solid red\";"#调用jsdriver.execute_script(js)time.sleep(3)driver.find_element_by_id("user_name").send_keys("username")driver.find_element_by_id("user_pwd").send_keys("password")driver.find_element_by_id("dl_an_submit").click()time.sleep(3)driver.quit()
JS解释:
q=document.getElementById(\"user_name\")
元素q的id 为user_name
q.style.border=\"1px solid red\
元素q的样式,边框为1个像素红色
隐藏元素
js.html
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>js</title> <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" /> <script type="text/javascript"> $(document).ready(function(){ $('#tooltip').tooltip({"placement": "right"}); }); </script> </head> <body> <h3>js</h3> <div class="row-fluid"> <div class="span6 well"> <a id="tooltip" href="#" data-toggle="tooltip" title=" selenium-webdriver(python)">hover to see tooltip</a> <a class="btn">Button</a> </div> </div> </body> <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> </html>
(保持html文件与执行脚本在同一目录下)
执行js一般有两种场景:
- 一种是在页面上直接执行JS
- 另一种是在某个已经定位的元素上执行JS
#coding=utf-8from selenium import webdriver import time,osdriver = webdriver.Firefox()file_path = 'file:///' + os.path.abspath('js.html')driver.get(file_path)#######通过JS 隐藏选中的元素##########第一种方法:driver.execute_script('$("#tooltip").fadeOut();')time.sleep(5)#第二种方法:button = driver.find_element_by_class_name('btn')driver.execute_script('$(arguments[0]).fadeOut()',button)time.sleep(5)driver.quit()
JS解释:
arguments对象,它是调用对象的一个特殊属性,用来引用Arguments对象。Arugments对象就像数组。
fadeOut() 方法使用淡出效果来隐藏被选元素,假如该元素是隐藏的。
本文部分参考虫师webdriver文档。
0 0
- Selenium学习笔记之009:执行JS代码
- Selenium+Webdriver学习(三) 执行JS脚本
- Selenium+Webdriver学习(三) 执行JS脚本
- Selenium学习笔记之二
- Selenium学习笔记之三
- 学习笔记代码,js 之构造函数
- selenium 执行 js
- selenium webdriver学习(三)------------执行js脚本
- selenium 学习-js执行,事件模拟,页面加载等待
- 学习笔记之命令行下执行PHP代码
- JS学习十四天----服务器端执行JS代码
- selenium学习笔记第一篇之case1
- Selenium学习笔记之010:层级定位
- Selenium学习笔记之011:操作对象
- Selenium学习笔记之015:鼠标事件
- Java学习笔记之—Static静态代码块,只执行一次,优先主函数执行。
- 写自己的代码之Ext/js学习笔记
- selenium之执行JavaScript脚本
- 算术运算符的优先级
- struts框架简单文件上传模型
- python和numpy的基本操作速查
- linux下使用yum安装mysql
- 关于DOM和节点的问题(未完待续...)
- Selenium学习笔记之009:执行JS代码
- XAMPP访问localhost时总是重定向到localhost/xampp的问题
- 1860 统计字符
- 烧写第一个ARM裸机程序的步骤
- 讨论java 变量 与命名约定
- od手脱壳的各种方法
- 设计模式中经典的观察者模式
- c++11信号量实现
- leetcode