Selenium3+python自动化008-常用操作
一、元素常用操作
1. clear() 清除文本
2. send_keys() 模拟输入
3. click() 单击元素
4.get_attribute 获取元素属性
5.driver.close() 关闭当前窗口
6.driver.quite() 关闭所有窗口,结束driver运行
from selenium import webdriver
from time import sleep
import os driver=webdriver.Chrome()
# 窗口最大化
driver.maximize_window() # os.getcwd()用法:执行文件(***.py文件)与html文件在同一目录下
url='file:///' + os.getcwd()+'/html/注册A.html'
driver.get(url) username=driver.find_element_by_id('userA')
username.send_keys('admin')
sleep(3)
# 清除文本框内容
username.clear() # 获取元素属性
print(username.get_attribute('placeholder')) sleep(3)
driver.quit()
常用方法
二、WebDriver操作鼠标键盘操作
鼠标操作:
1. 导包:from selenium.webdriver.common.action_chains import ActionChains
2. 实例化ActionChains对象:Action=ActionChains(driver)
说明:在WebDriver中将操作鼠标的方法封装在ActionChains类中
(1)context_click() 右击 --> 此方法模拟鼠标右键点击效果
(2)double_click() 双击 --> 此方法模拟鼠标双击效果
(3)drag_and_drop() 拖动 --> 此方法模拟鼠标拖动效果
(4)move_to_element() 悬停 --> 此方法模拟鼠标悬停效果
(5)perform() 执行 --> 此方法用来执行以上所有鼠标方法
# coding="utf-8" from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
from selenium.webdriver.common.alert import Alert
from time import time # driver = webdriver.Firefox()
driver = webdriver.Chrome()
url = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable" driver.get(url)
# 切换到目标元素所在的frame
driver.switch_to.frame("iframeResult")
# 确定拖拽目标的起点
source = driver.find_element_by_id("draggable")
# 确定拖拽目标的终点
target = driver.find_element_by_id("droppable")
# 形成动作链接
actions = ActionChains(driver)
actions.drag_and_drop(source, target) # 执行
actions.perform()
sleep(5)
driver.quit()
鼠标操作
键盘操作:
导包:from selenium.webdriver.common.keys import Keys
ActionChains实现方法:
ActionChains(driver).key_down(Keys.CONTROL).send_keys('a').\
key_up(Keys.CONTROL).perform()
模拟组合按键操作:
1. send_keys(Keys.BACK_SPACE)删除键(BackSpace)
2. send_keys(Keys.SPACE)空格键(Space)
3. send_keys(Keys.TAB)制表键(Tab)
4. send_keys(Keys.ESCAPE)回退键(Esc)
5. send_keys(Keys.ENTER)回车键(Enter)
6. send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
7. send_keys(Keys.CONTROL,'c')复制(Ctrl+C)
8. send_keys(Keys.CONTROL,'v')粘贴(Ctrl+V)
7. send_keys(Keys.CONTROL,'x')剪切(Ctrl+X)
from selenium import webdriver
from time import sleep
import os
# 导包
from selenium.webdriver.common.keys import Keys driver=webdriver.Chrome()
driver.maximize_window()
url='file:///' + os.getcwd()+'/html/注册A.html'
driver.get(url) '''
需求:
1). 输入用户名:admin1,暂停2秒 删除1
2). 全选用户名:admin 暂停2秒
3). 复制用户名:admin 暂停2秒
4). 粘贴到密码框 暂停2秒
5). 关闭浏览器
''' # 定位用户名编辑框
element=driver.find_element_by_id("userA")
# 定位密码编辑框
plassword=driver.find_element_by_id('passwordA')
# 输入用户名
element.send_keys("admin1")
# 删除1
element.send_keys(Keys.BACK_SPACE)
# 全选
element.send_keys(Keys.CONTROL,'a')
# 复制
# element.send_keys(Keys.CONTROL,'c') # 剪切
element.send_keys(Keys.CONTROL,'x') # 粘贴
plassword.send_keys(Keys.CONTROL,'v') sleep(3)
driver.quit()
键盘操作
模拟键盘单个按键操作
send_keys(Keys.F12)
send_keys(Keys.ENTER)
三、操作下拉列表 select方法
1. select_by_index() --> 根据option索引来定位,从0开始
2. select_by_value() --> 根据option属性 value值来定位
3. select_by_visible_text() --> 根据option显示文本来定位
# 导入Webdrive包
from selenium import webdriver
from time import sleep
import os # 导入select类
from selenium.webdriver.support.select import Select
# 实例化浏览器对象
driver=webdriver.Chrome()
url='file:///' + os.getcwd()+'/html/注册A.html'
driver.get(url) '''
定位option方式:
find_elements_xxx()
tag_name:option--演示
css selector--演示
Xpath
'''
# 第一种方法:使用tag_name
'''
options=driver.find_elements_by_tag_name("option")
for el in options:
if el.text=="A上海":
sleep(2)
#点击
el.click()
for el in options:
if el.get_attribute("value")=="cq":
sleep(2)
#点击
el.click()
for el in options:
if el.text=="A广州":
sleep(2)
#点击
el.click()
'''
# 第二种方法-select类
# 第一步实例化Select
select=Select(driver.find_element_by_css_selector("#selectA")) sleep(2)
select.select_by_visible_text('A上海')
sleep(2)
select.select_by_value("sh")
sleep(2)
select.select_by_index(2) #打印所有的选中项文本
for option in select.all_selected_options:
print(option.text) sleep(2)
driver.quit()
下列列表
四、多窗口切换
说明:在WebDriver中封装了获取当前窗口句柄方法和获取所有窗口句柄的方法以及切换指定句柄窗口的方法;
(句柄:英文handle,窗口的唯一识别码)
方法:
1). driver.current_window_handle --> 获取当前窗口句柄
2). driver.window_handles --> 获取所有窗口句柄
3). driver.switch_to.window(handle) --> 切换指定句柄窗口
# 导入Webdrive包
from selenium import webdriver
from time import sleep
import os # 实例化浏览器对象
driver=webdriver.Chrome()
url='file:///' + os.getcwd()+'/html/注册实例.html'
driver.get(url)
'''
1. 获取注册实例.html当前窗口句柄
2. 点击注册实例.html页面中注册A页面
3. 获取所有窗口句柄
4. 遍历判断窗口句柄并切换到注册A页面
5. 操作注册A页面元素,注册信息
'''
# 第一步获取当前窗口句柄
cur_handle=driver.current_window_handle
print('默认打开的窗口:',driver.window_handles)
print('第一个窗口:',driver.current_window_handle) # 定位-点击注册A页面
driver.find_element_by_css_selector("#ZCA").click() # 第三步:获取所有窗口句柄
all_handles=driver.window_handles
print('当前所有句柄',all_handles) driver.switch_to_window(all_handles[1])
sleep(2)
driver.close()
print('关闭一个以后,打开的窗口:',driver.window_handles) driver.switch_to_window(all_handles[1])
sleep(1)
driver.close()
driver.switch_to_window(all_handles[0]) # 第四步:遍历(只有两个窗口)
for handle in all_handles:
print("遍历窗口handle为:",handle)
if handle !=cur_handle:
driver.switch_to.window(handle)
# 填写注册A-注册信息
driver.find_element_by_css_selector("#userA").send_keys("admin")
driver.find_element_by_css_selector("#passwordA").send_keys("")
driver.find_element_by_css_selector("#telA").send_keys("")
driver.find_element_by_css_selector("#emailA").send_keys("123@qq.com") sleep(2)
driver.quit()
多窗口切换
Selenium3+python自动化008-常用操作的更多相关文章
- Selenium3+python自动化007-Selenium常用定位方法
自动化测试只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%:操 ...
- 二叉树的python可视化和常用操作代码
二叉树是一个重要的数据结构, 本文基于"二叉查找树"的python可视化 pybst 包, 做了一些改造, 可以支持更一般的"二叉树"可视化. 关于二叉树和二叉 ...
- selenium3+python自动化50-环境搭建(firefox)
前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...
- selenium3+python自动化50-环境搭建(firefox)【转载】
前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...
- Python数据类型及常用操作
Python字符串类型 1.用途: 用来记录有描述性的状态.比如:人名,地址等. 2.定义方式: 创建字符串非常简单,在‘ ’,“ ”,‘’‘ ’‘’内一填写一系列的字符例如:msg='hello' ...
- Python字符串的常用操作学习
>>> name = "I love my job!" >>> name.capitalize() #首字母大写 'I love my job! ...
- Python集合的常用操作
字典常用的就是,他的去重. set集合是python的一个基本数据类型. set中的元素是不重复的.⽆无序的.⾥面的元素必须是可hash的(int, str, tuple,bool). 我们可以这样来 ...
- python os 模块常用操作
python 2.7 os 常用操作 官方document链接 文件和目录 os.access(path, mode) 读写权限测试 应用: try: fp = open("myfile&q ...
- 初识python: 字符串常用操作
直接上代码示例: #!/user/bin env python # author:Simple-Sir # time:20180914 # 字符串常用操作 name = 'lzh lyh' print ...
随机推荐
- Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)
在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...
- 3.在eclipse中创建Web项目,并部署到Tomcat上
1.找到创建web项目的菜单 2.创建web项目并选择web环境 3.查看创建好的web项目结构 4.在web项目的webContent文件夹下创建jsp页面 5.查看是否创建jsp页面成功,并编辑j ...
- Bootstrap 表单控件状态(禁用状态)
Bootstrap框架的表单控件的禁用状态和普通的表单禁用状态实现方法是一样的,在相应的表单控件上添加属性“disabled”.和其他表单的禁用状态不同的是,Bootstrap框架做了一些样式风格的处 ...
- UVALive Archive - 6196 - Party Games
题目: You've been invited to a party. The host wants to divide the guests into 2 teams for party games ...
- Tomcat日志配置远程Syslog采集
http://blog.csdn.net/leizi191110211/article/details/51593748
- Sublime Text 3常用插件—Emmet
原文链接:http://www.cnblogs.com/easy-blue/p/6617852.html 摘要: 安装请看上一篇Sublime Text—安装,和sublime自带快捷键一起用,写ht ...
- spring boot使用外部tomcat部署
1:pom里面的packaging修改为war(<packaging>war</packaging>) 2:在pom依赖spring-boot-starter-web排除内置的 ...
- Linux 3.14 待机流程分析
1:待机节点创建 static int __init pm_init(void) { int error = pm_start_workqueue(); if (error) return error ...
- 程序中的文件之沙盒以及plist文件的初步使用
沙盒是相对于"应用程序"的文件,也就是相相应app所在的页面的文件. 每个应用都有自己的应用沙盒(应用沙盒就是文件系统文件夹).与其它文件系统隔离.应用必须呆在在积极的沙盒中.其它 ...
- Java Colections 集合类 —— List、ArrayList、Set(HashSet)
0. List<T> 是一个接口 该接口定义的高级成员函数有: contains() ⇒ 是否包含: String[] people; List names = Arrays.asList ...