selenium的常见表单元素操作
selenium是浏览器自动化测试框架,是一个用于Web应用程序测试的工具,可以直接运行在浏览器当中,并可以驱动浏览器执行指定的动作,如点击、下拉、填充数据、删除cookie等操作,还可以获取浏览器当前页面的源代码,就像用户在浏览器中操作一样。该工具所支持的浏览器有IE浏览器、Mozilla Firefox以及Google Chrome等。selenium有很多语言的版本,比如:Java、Ruby、Python等。
操作表单元素
常见的表单元素
§ Input
§ button
§ checkbox
§ select
1、操作输入框: 分为两步, 第一步:找到元素 第二步:使用send_keys(value),将数据填充进去。示例代码如下:
# 以百度为例
#_*_coding:utf-8_*_
# 作者 :liuxiaowei
# 创建时间 :2/9/22 3:35 PM
# 文件 :selenium操作input.py
# IDE :PyCharm
# 导入webdriver 模块
from selenium import webdriver
# 导入time模块
import time
# 创建浏览器引擎
driver = webdriver.Chrome(executable_path='chromedriver')
# 指定url
url = 'http://www.baidu.com'
# 使用引擎打开网页
driver.get(url)
# 通过ID查找input框
inputTag = driver.find_element_by_id('kw')
# 向input框发送python值
inputTag.send_keys('python')
# 停顿3秒
time.sleep(3)
使用clear 方法可以清除输入框中的内容。示例代码如下:
# 自动清除
inputTag.clear()
# 停顿3秒
time.sleep(3)
# 关闭当前浏览页
driver.close()
2、操作checkbox:因为要选中checkbox 标签,在网页中是通过鼠标点击的。因此想要选中checkbox标签,那么选中这个标签,然后执行click事件。示例代码如下:
#_*_coding:utf-8_*_
# 作者 :liuxiaowei
# 创建时间 :2/9/22 3:35 PM
# 文件 :selenium操作checkbox.py
# IDE :PyCharm
# 导入webdriver模块
from selenium import webdriver
import time
# 创建浏览器引擎
driver = webdriver.Chrome(executable_path='chromedriver')
# 设定url
url = 'https://passport.mingrisoft.com/login/index.html?tpl=sch'
# 打开网页
driver.get(url)
# 通过name查找checkbox,本例默认是选中的
checkboxTag = driver.find_element_by_name('rempwd')
# 执行click()命令,取消默认选中
checkboxTag.click()
# 停顿3秒
time.sleep(3)
# 关闭当前浏览页
driver.close()
3、选择select:select元素不能直接点击。因为点击后还需要选中元素,因此selenium专门为select标签提供了一个类selenium.webdriver.support.ui.Select。将获取的元素当成参数传到这个类中,创建这个对象。以后就可以使用这个对象进行选择了。示例代码如下:
from selenium.webdriver.support.ui import Select
# 选中这个标签,然后使用Select创建对象
selectTag = Select(driver.find_element_by_name('jumpMenu'))
# 根据索引选择
selectTag.select_by_index(1)
# 根据值选择
selectTag.select_by_value('http://www.95yueba.com')
# 根据可是的文本选择
selectTag.select_by_visible_text('95秀客户端')
# 取消所有选项
selectTag.deselect_all()
4、操作按钮:操作按钮有很多种方式。比如单击、右击、双击等。常用的是点击。直接调用click函数就可以。示例代码如下:
#_*_coding:utf-8_*_
# 作者 :liuxiaowei
# 创建时间 :2/9/22 4:59 PM
# 文件 :selenium操作按钮标签.py
# IDE :PyCharm
# 导入webdriver 模块
from selenium import webdriver
# 导入Select模块
from selenium.webdriver.support.ui import Select
# 导入time模块
import time
# 创建浏览器引擎
driver = webdriver.Chrome(executable_path='chromedriver')
# 指定url
url = 'http://www.baidu.com'
# 使用引擎打开网页
driver.get(url)
# 通过ID查找input框
inputTag = driver.find_element_by_id('kw')
# 向input框发送python值
inputTag.send_keys('python')
# 查找百度一下按钮
submitTag = driver.find_element_by_id('su')
# click()执行百度命令
submitTag.click()
# 关闭当前浏览器页面
driver.close()
行为链
所谓“行为链”就是一连串的操作动作。有时候在页面中的操作可能要有很多步,那么这时候可以使用鼠标行为链类ActionChains来完成。例如将鼠标移动到某个元素上并执行点击事件。示例代码如下:
#_*_coding:utf-8_*_
# 作者 :liuxiaowei
# 创建时间 :2/9/22 5:34 PM
# 文件 :selenium操作行为链.py
# IDE :PyCharm
# 导入模块
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
# chromedriver路径
execute_path = '../使用selenium爬取动态加载的信息/chromedriver'
url = 'http://www.baidu.com/'
# 创建driver
driver = webdriver.Chrome(executable_path=execute_path)
driver.get(url)
# 找到input、百度一下标签
inputTag = driver.find_element_by_id('kw')
submitTag = driver.find_element_by_id('su')
# 创建行为
actions = ActionChains(driver)
# 选中input框,然后输入'中国女足'
actions.move_to_element(inputTag)
actions.send_keys_to_element(inputTag, '中国女足')
# 选中百度一下标签,然后单击
actions.move_to_element(submitTag)
actions.click(submitTag)
# 统一执行actions
actions.perform()
time.sleep(13)
driver.close()
还有更多的鼠标相关操作
click_and_hold(element):点击但不松开鼠标
context_click(element):右键点击
double_click(element):双击
更多方法参考:http://selenium-python.readthedocs.io/api.html
接下文 selenium的常见表单元素操作(二)https://developer.aliyun.com/article/1617954