一、常用方法介绍
基础方法
方法 | 作用 |
---|---|
click() | 单击元素,点一下放开 |
send_keys (value) | 模拟按键输入。 |
clear() | 清除文本 |
submit() | 提交表单。 例如, 在搜索框输入关键字之后的“回车” 操作, 就可以通过该方法模拟,有时候 submit()可以与 click()方法互换来使用, submit()同样可以提交一个按钮, 但 submit()的应用范围远不及 click()广泛。 |
元素判断
方法 | 作用 |
---|---|
get_attribute(name) | 获得属性值。 |
is_enabled() | 判断一个元素是否可以操作 是:True ,否:False |
is_selected() | 判断元素是否被选中 |
is_displayed() | 元素是否用户可见 |
鼠标事件
在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供。
方法 | 作用 |
---|---|
context_click() | 右击 |
double_click() | 双击 |
drag_and_drop(source, target) | 鼠标拖动, |
move_to_element() | 鼠标悬停 |
perform() | 执行所有 ActionChains 中存储的行为 |
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
# 启动浏览器
driver = webdriver.Chrome(executable_path="D:\drivers\chromedriver.exe")
# 打开百度网页
driver.get("http://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_css_selector("#kw").send_keys("python")
element = driver.find_element_by_css_selector("#kw")
sleep(3)
# 双击操作
ActionChains(driver).double_click(element).perform()
sleep(3)
# 右击操作
ActionChains(driver).context_click(element).perform()
sleep(3)
# 鼠标悬停
above = driver.find_element_by_css_selector(".pf")
ActionChains(driver).move_to_element(above).perform()
sleep(4)
driver.quit()
键盘事件
Keys()类提供了键盘上几乎所有按键的方法。 前面了解到, send_keys()方法可以用来模拟键盘输入, 除此 之外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A、 Ctrl+C 等。
方法 | 作用 |
---|---|
send_keys(Keys.BACK_SPACE) | 删除键(BackSpace) |
send_keys(Keys.SPACE) | 空格键(Space) |
send_keys(Keys.TAB) | 制表键(Tab) |
send_keys(Keys.ESCAPE) | 回退键(Esc) |
send_keys(Keys.ENTER) | 回车键(Enter) |
send_keys(Keys.CONTROL,'a') | 全选(Ctrl+A) |
send_keys(Keys.CONTROL,'c') | 复制(Ctrl+C) |
send_keys(Keys.CONTROL,'x') | 剪切(Ctrl+X) |
send_keys(Keys.CONTROL,'v') | 粘贴(Ctrl+V) |
send_keys(Keys.F1) | 键盘 F1 |
send_keys(Keys.F..) | 键盘 F.. |
send_keys(Keys.F12) | 键盘 F12 |
使用
from selenium import webdriver
# 引入 Keys 模块
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 输入框输入内容
driver.find_element_by_id("kw").send_keys("seleniumm")
# 删除多输入的一个 m
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
# 输入空格键+“教程”
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys("教程")
# ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
# ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
# ctrl+v 粘贴内容到输入框
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')
# 通过回车键来代替单击操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)
driver.quit()
下拉框选择
当我们遇到下拉框元素select类型时 ,我们需要用到Select对象来操作
Select 对象地址
from selenium.webdriver.support.ui import Select
Select对象使用
创建对象
element = driver.find_element_by_id("sel")
select=Select(element)
选择选项值
方法 | 作用 |
---|---|
select.select_by_index(index) | 根据索引选择 |
select.select_by_value(value) | 根据value值选择 |
select.select_by_visible_text(text) | 根据文本信息选择 |
取消选项选择,仅用于复选下拉框
方法 | 作用 |
---|---|
select.deselect_all() | 取消全部选择项 |
select.deselect_by_index() | 根据索引取消某一项 |
select.deselect_by_value() | 根据value值取消某一项 |
select.deselect_by_visible_text() | 根据文本信息取消 |
获取信息
方法 | 作用 |
---|---|
select.first_selected_option | 获取第一个被选中项 |
select.all_selected_options | 获取所有的选中项 |
select.options | 获取所有选项 |
select.is_multiple | 是否多选下拉框 |