python selenium--常用函数3
ActionChains类鼠标操作的常用方法:
引入ActionChains类:from selenium.webdriver.common.action_chains import ActionChains
context_click() 右击
——如:RightClick = driver.find_element_by_id("id")
ActionChains(driver).context_click(RightClick).perform()
double_click() 双击
——如:DoubleClick = driver.find_element_by_name("name")
ActionChains(driver).double_click(DoubleClick).perform()
drag_and_drop(source, target) 鼠标拖放
——source:鼠标按下的源元素;target:鼠标释放的目标元素
——如:element = driver.find_element_by_name("name")
target = driver.find_element_by_name("name")
ActionChains(driver).drag_and_drop(element, target).perform()
move_to_element() 鼠标悬停在一个元素上
——如:above = driver.find_element_by_xpath("xpath路径")
ActionChains(driver).move_to_element(above).perform()
click_and_hold() 按下鼠标左键在一个元素上
——如:left = driver.find_element_by_name("name")
ActionChains(driver).click_and_hold(left).perform()
键盘事件:
引入Keys类包:from selenium.webdriver.common.keys import Keys
send_keys() 输入框输入内容
——如:driver.find_element_by_id("id").send_keys("XXX")
send_keys(Keys.BACK_SPACE) 向左删除一个字符 ——如:driver.find_element_by_id("id").send_keys("XXX")
send_keys(Keys.SPACE) 输入空格
——如:driver.find_element_by_id("id").send_keys(Keys.SPACE)
send_keys(Keys.CONTROL,‘a‘) ctrl+a 全选输入框的内容
——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘a‘)
send_keys(Keys.CONTROL,‘x‘) ctrl+x 剪切输入框的内容
——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘x‘)
send_keys(Keys.CONTROL,‘v‘) ctrl+v 粘贴到输入框
——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘v‘)
send_keys(Keys.ENTER) 回车代替点击
——如:driver.find_element_by_id("id").send_keys(Keys.ENTER)
send_keys(Keys.TAB) 制表键(Tab)
——如:driver.find_element_by_id("id").send_keys(Keys.TAB)
send_keys(Keys.ESCAPE) 回退键(Esc)
——如:driver.find_element_by_id("id").send_keys(Keys.ESCAPE)
send_keys(Keys.CONTROL,‘c‘) 复制
——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘c‘)
打印信息
#获得title并打印
title = driver.title
print title
#拿当前title名称进行预期比较
if title == u"百度一下,你就知道":
print "title yes!"
else:
print "title no!"
#获得当前URL并打印
url = driver.current_url
print url
等待时间
#导入 WebDriverWait 包
from selenium.webdriver.support.ui import WebDriverWait
#导入 time 包
import time
sleep() 设置固定等待时间
——如:time.sleep(5) #等待5秒
implicitly_wait() 等待一个元素被发现,或一个命令完成,超出了设置时间则抛出异常
——如:driver.implicitly_wait(30)
driver.find_element_by_id("id").click()
WebDriverWait() 在设置时间内,默认每隔一段时间检测检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
——driver:WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)
——timeout:最长超时时间,默认以秒为单位
——poll_frequency:休眠时间的间隔(步长)时间,默认为 0.5 秒
——ignored_exceptions:超时后的异常信息,默认情况下抛 NoSuchElementException 异常
——如1:element = WebDriverWait(driver, 10).until(lambda x : x.find_element_by_id("id"))
element.send_keys("selenium")
——如2:element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id(“Id”))
is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).until_not(lambda x: x.find_element_by_id(“someId”).is_displayed())
WebDriverWai()一般由 unit()或 until_not()方法配合使用:
——until(method, message=’’)
调用该方法提供的驱动程序作为一个参数,直到返回值不为 False。
——until_not(method, message=’’)
调用该方法提供的驱动程序作为一个参数,直到返回值为 False。
定位一组对象
#选择当前页面上所有tag name为input的元素
inputs = driver.find_elements_by_tag_name(‘input‘)
#从中过滤出type为checkbox的元素,并勾选上
for input in inputs:
if input.get_attribute(‘type‘) == ‘checkbox‘:
input.click()
#使用CSS定位选择所有type为checkbox的元素,并勾选上
checkboxes = driver.find_elements_by_css_selector(‘input[type=checkbox]‘)
for checkbox in checkboxes:
checkbox.click()
#把最后一个checkbox的勾去掉 pop()为空则是最后一个
driver.find_elements_by_css_selector(‘input[type=checkbox]‘).pop().click()
python selenium--常用函数3的更多相关文章
- Python 字符串常用函数
操作字符串的常用函数 函数 描述(返回值) str.capitalize() 将字符串的第一个字符大写 str.title() 返回标题化的字符串,即每个单词的首字母都大写 str.upper() 全 ...
- Python—字符串常用函数
Python-字符串常用字符串 字符串是一种表示文本的数据类型,使用单引号和双引号及三引号表示 访问字符串中的值字符串的每个字符都对应一个下标,下标编号是从0开始 转义字符字符串的格式化输出切片常用函 ...
- python字符串 常用函数 格式化字符串 字符串替换 制表符 换行符 删除空白 国际货币格式
# 字符串常用函数# 转大写print('bmw'.upper()) # BMW# 转小写print('BMW'.lower()) # bmw# 首字母大写print('how aae you ?'. ...
- python中常用函数整理
1.map map是python内置的高阶函数,它接收一个函数和一个列表,函数依次作用在列表的每个元素上,返回一个可迭代map对象. class map(object): ""&q ...
- Python量化常用函数
# -*- coding: utf-8 -*- # @Author: fangbei # @Date: 2017-08-26 # @Original: price_str = '30.14, 29.5 ...
- 转 python 的常用函数replace, split(),enumerate() 函数
1.execmd = "su - " + ou + " -c 'sqlplus / as sysdba << EOF\n " + execmd3 + ...
- python—各种常用函数及库
列表list1.append(x) 将x添加到列表末尾 list1.sort() 对列表元素排序 list1.reverse() 将 ...
- Python string常用函数
2017-07-03 23:26:08 1..replace(self, old, new, count=-1) replace()函数将旧字符串替换为新字符串,最后一个参数count为可选项,表示替 ...
- selenium2.0关于python的常用函数
转: 新建实例driver = webdriver.Chrome() 1.获取当前页面的Url函数 方法:current_url 实例: driver.current_url 2.获取元素坐标 方法: ...
- python selenium常用基本方法---H5和键盘鼠标操作
一.模拟手机打开页面(H5测试) from selenium import webdriver mobile_emulation = {'deviceName':'iPhone X'} options ...
随机推荐
- Problem D: 结构体:计算输入日期是该年的第几天
#include <stdio.h> struct time{ int year; int month; int day;}; int main(void) { struct time s ...
- Android 权限处理
概述: 为了保护系统的完整性和用户隐私权,Android 在访问受限的沙盒中运行每款应用. 如果应用需要使用其沙盒以外的资源或信息,则必须明确请求权限. 根据应用请求的权限类型,系统可能会自动授予权限 ...
- ThinkPad X240 禁掉触摸板
控制面板 --> 鼠标 --> Thinkpad
- Delphi XE10下用FireDAC与SQLite连接要注意的问题 转
Delphi在XE的版本上,已经实现了安卓与苹果的移动跨平台,因此只需要一份代码,就可以统领两种手机平台,确实是一种高效的做法和节约的策略. 用Delphi XE7连接SQLite,主流使用Fir ...
- django--02 模板的使用
参考链接:https://www.w3cschool.cn/django/django-template.html 1.新建模板目录 templates 2.在setting文件中注册模板 修改 T ...
- Java_导出Excel
导出的Excel标题.Sheet名称.数据内容都可以使用中文 一.pom.xml引入jar包 1 2 3 4 5 <dependency> <groupId ...
- python部署工具fabric
两台机器:10.1.6.186.10.1.6.159.fabric部署在10.1.6.186上面 1 执行和1相同的任务,不过排除掉10.1.6.159这台机器 1 #!/usr/bin/pytho ...
- 流畅的python第十四章可迭代的对象,迭代器和生成器学习记录
在python中,所有集合都可以迭代,在python语言内部,迭代器用于支持 for循环 构建和扩展集合类型 逐行遍历文本文件 列表推导,字典推导和集合推导 元组拆包 调用函数时,使用*拆包实参 本章 ...
- [视频解说]Java(JDK的下载安装及第一个程序执行)
(JDK的下载安装及第一个程序执行) 内容:Java JDK 的安装以及HelloWorld 程序的执行 欢迎童鞋们前往围观 http://v.youku.com/v_show/id_XODA3Mzk ...
- 让网页在ie浏览器下以最高版本解析网页
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta ht ...