selenium笔记2017
1,from time import sleep(先引入关键词)
sleep(5) (就可以使用这个命令了)
可以停止页面5秒
1-1.
等待页面元素出现的时间(即没出现时,等待元素出现)
在头部加上:
driver=webdriver.Firefox()
driver.implicitly_wait (10)#显式等待
2,定位的语法:
driver.find_element_by_id('kw')
3, A=driver.find_element_by_id('kw'),get_attribute('属性')==”值”
验证元素的属性。
返回ture flase
if driver.find_element_by_id('kw').get_attribute('autocomplete') == 'off':
print "TURE ,百度按钮找到了 "
else:
print "no"
4,定位P标签 只有文字的方法
//div[@class=’suggert’]/p[contatiotains(text(),‘八达岭长城’)]
5,指定一个浏览器或驱动
driver= webdriver.Firefox(executable_path="C:\Program Files (x86)\Mozilla Firefox\firefox.exe")
dr=webdriver.Chrome(executable_path = '/Library/Python/2.7/chromedriver')
6,显示元素的出现等待: (pdf 4.7)
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
input_=driver.find_element_by_id("kw")
element = WebDriverWait(driver,5,0.5).until(
lambda driver :input_.is_displayed())
print element
4.9 iframe的切换
dr.switch_to_frame('iframeUploadMaterialImage') #可自动识别ID OR name
dr.switch_to_default_content()#切回来
4.10 多窗口的切换
7,验证并且不会中止下面代码的执行:
#coding=utf-8
from selenium import webdriver
dr= webdriver.Firefox()
dr.get('http://www.baidu.com')
try:
dr.find_element_by_id('1kw').send_keys('selenium')
dr.find_element_by_id('su').click()
except :
print "oh no" #上面有异常打印这个
exit() #加入这个的话就直接退出程序,不执行下面的用例
else :
print "oh no" #上面正常打印这个
#找不到按钮也会继续执行下面的动作不会中断
dr.quit()
抛出错误就停止可以用assert(看python笔记本第17条)
7-1验证断言写法
B=3
C=3
try:
A=B+C
assert(A==6),"错误信息"
except AssertionError,msg:
print msg
else:
print "PASS"
下面是简写:
try:
A=B+C
assert(A==6)
except :
print “错误信息”
else:
print "PASS"
8.参数化的方法 5.3.2
读取text文件并做分隔的,如:账号密码的登录
9.一个 python获取当前时间 和数据格式化的例子:
例子一:
这个是正确主流的方法:
#coding: utf-8
import datetime #引入类
# 获取当前的时间
today = datetime.date.today()
ab= 'My age is'+ str(today)
#编写标题
dr.find_element_by_name("title").send_keys(ab)
#得出来的日期是字符串的类型,注意字符串格式化的方法%s
例子二:
只是把数据类型变字符串的,使用str()
#coding: utf-8
import datetime #引入类
# 获取当前的时间
today = datetime.date.today()
ab=today
print ab
#编写标题
dr.find_element_by_name("title").send_keys(str(ab))
#使用python的字符串格式化,str()方式,把日期变成字符格式,send_keys正常。
例子三:
#coding: utf-8
import datetime #引入类
# 获取当前的时间
today = datetime.date.today()
ab= 'My age is %s' % today
#编写标题
dr.find_element_by_name("title").send_keys(ab)
#得出来的日期是字符串的类型,注意字符串格式化的方法%s
11,获取对象的属性 和获取标签集的方法
inputs = driver.find_elements_by_tag_name('input')
#然后循环遍历出data-node 为594434493的元素,单击勾选
for input in inputs:
if input.get_attribute('data-node') == '594434493':
input.click()
......
12,警告窗 4-11
#接收弹窗driver.switch_to_alert().accept()
13,当send_keys中文的时候报错,
可以在中文前面加个u即可
Send_keys(u”你好”)
14, 4-3-1
is_displayed() 设置该元素是否用户可见
15,
dr.quit()
退出并关闭窗口的每一个相关的驱动程序,它还有个类似的表弟。
dr.close()
关闭当前窗口 ,用哪个看你的需求了。
16,,清除文本,如果是一个文件输入框
clear()
17,模拟 下页 按键 pg DN (可以解决chrome不可以拖动浏览器的问题)
dr.find_element_by_xpath("/html/body").send_keys(Keys.PAGE_DOWN)
模拟 上页 按键
dr.find_element_by_xpath("/html/body").send_keys(Keys.PAGE_UP)
18.chrome 使用本来的浏览条滚动命令无法滚动 的解决方法
参考网: (亲测OK)http://blog.csdn.net/sinat_21302587/article/details/54341020?locationNum=1&fps=1

19,判断复选框有没有选中的API
# 点击后,判断元素是否为选中状态
r = driver.find_element_by_id("boy").is_selected()
参考网站:http://www.cnblogs.com/yoyoketang/p/6128675.html
20,获取标签的属性判断bool值
Dr.find_element_by_xpath(~).get_ attribute(“CLASS”)==”123”
返回是bool值 ture or flase

22,双层定位

多用于下拉框的定位:
先定位下拉框,再xpath定位下拉框下面的选项
21,做数据分离的时候,从excel取出来的数据,无法放入send_keys API里面去 执行
解决过程:
从excel取出来的数据 type类型是str的 无法send_keys。提示无法解码
但是先把他转成unicode格式再放进去就可以send_keys了
后面发现,原来在函数那边做了utf-8格式转换,不转换的话可以直接调用


22. page_source
获取到页面源码(前端代码)
用法: element.page_source

参考: https://www.cnblogs.com/yoyoketang/p/6512604.html
selenium笔记2017的更多相关文章
- selenium笔记(1)
selenium笔记(1) 一.关闭页面:1.driver.close() 关闭当前页面2.driver.quit() 退出整个浏览器 二.定位元素:1.find_element_by_id: 根据i ...
- Python+Selenium笔记(九):操作警告和弹出框
#之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用) 改成 driver.switch_to.alert就不会了. (一 ...
- Python+Selenium笔记(一):环境配置+简单的例子
#环境配置基于windows操作系统 #学习selenium要有一些HTML和xpth的基础,完全不会的建议先花点时间学点基础(不然元素定位,特别是xpth可能看的有点懵) #HTML : http ...
- Python 爬虫 selenium 笔记
1. selenium 安装, 与文档 pip install selenium Selenium with Python中文翻译文档 selenium官网英文文档 2. selenium 的第一个示 ...
- Selenium 笔记
1. 截屏:get_screenshot_as_file(“C:\\b1.jpg”) 2. 退出:(1).close----关闭当前窗口 (2).quit()-----用于结束进程,关闭所有的窗口 一 ...
- Python+Selenium笔记(十八):持续集成jenkins
(一)安装xmlrunner 使用Jenkins执行测试时,测试代码中会用到这个模块. pip install xmlrunner (二)安装jenkins (1) 下载jekins https: ...
- Python+Selenium笔记(十七):操作cookie
(一)方法 方法 简单说明 add_cookie(cookie_dict) 在当前会话中添加cookie信息 cookie_dict:字典,name和value是必须的 delete_all_cook ...
- Python+Selenium笔记(十六)屏幕截图
(一) 方法 方法 简单说明 save_screenshot(filename) 获取当前屏幕截图并保存为指定文件 filename:路径/文件名 get_screenshot_as_base64 ...
- Python+Selenium笔记(十五)调用JS
(一) 方法 方法 简单说明 execute_async_script(script, args) 异步执行JS代码 script:被执行的JS代码 args:js代码中的任意参数 execute_s ...
随机推荐
- BootStrap iCheck插件全选与获取value值的解决方法
这篇文章主要介绍了BootStrap iCheck插件全选与获取value值的解决方法,解决方法其实很简单,下面小编给大家分享下这方面的知识 在使用jQuery iCheck 插件的时候遇到了一个问题 ...
- NOI导刊 2009 提高二
开灯 题目大意 对编号为\([i \times a]\)的灯进行操作,找出操作数为奇数的那一个 题目分析 难度: 入门 因为看到操作数为奇数,因此直接进行位运算,做亦或和 打砖块 题目分析 第一眼看上 ...
- UVa 11552 最小的块数(序列划分模型:状态设计)
https://vjudge.net/problem/UVA-11552 题意:输入一个正整数k和字符串S,字符串的长度保证为k的倍数.把S的字符按照从左到右的顺序每k个分成一组,每组之间可以任意重排 ...
- HashMap put方法
HashMap的put方法执行过程可以通过下图来理解,自己有兴趣可以去对比源码更清楚地研究学习. ①.判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容: ②.根据键 ...
- 过滤器系列(二)—— Cuckoo filter
这一篇讲的是布谷过滤器(cuckoo fliter),这个名字来源于更早发表的布谷散列(cuckoo hash),尽管我也不知道为什么当初要给这种散列表起个鸟名=_= 由于布谷过滤器本身的思想就源自于 ...
- Life Cycle(JSF+Facelets)
一.JSF Life Cycle: 图1 图2 应用程序的生命周期是指应用程序的各个阶段,从开始到结束.所有应用程序的生命周期.在web应用程序生命周期中,执行常见任务,包括以下内容.■处理传入的请求 ...
- Python 编程核心知识体系-基础|数据类型|控制流(一)
Python知识体系思维导图: 基础知识 数据类型 1.序列 2.字符串 3.列表和元组 4.字典和集合 循环 & 判断
- java基础第8天
继承extends(也叫扩展) 多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 通过extends关键字可以实现类的继承 继承的 ...
- js在一定时间内跳转页面及各种页面刷新
1.js 代码: <SCRIPT LANGUAGE="JavaScript"> var time = 5; //时间,秒 var timelong = 0; funct ...
- nmcli 命令的基本使用
nmcli命令 地址配置工具:nmcli nmcli device 查看所有网卡的信息 nmcli device status 和numcli device 相同 nmcli device ...