概述
selenium不仅可以操纵浏览器,还可以操纵网页中的元素。selenium对于网页中的元素的操作主要包括点击、输入内容、清除内容、表单提交、下拉框选择五个部分。
点击
element.click()
selenium使用click函数实现元素点击操作,click函数将模拟鼠标在元素中央进行点击,如果元素中央由于某些原因而点击不了,比如元素被遮挡,则返回一个元素中断错误。点击元素操作支持HTML中的任何元素。
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打开Chrome浏览器
driver = webdriver.Chrome()
# 导航至百度首页
driver.get("www.baidu.com")
# 获取首页搜索按钮
driver.find_element(By.ID, "su")
# 点击元素
element.click()
# 关闭浏览器
dirver.quit()
输入内容
element.send_keys()
selenium实现输入元素内容操作的函数是send_keys函数,注意,selenium不仅可以输入文本,而且可以在输入文本的同时也输入按键名称,相当于在键盘中按下对应的键。输入内容操作仅支持内容可编辑元素,比如输入框<input type="text>。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# 打开Chrome浏览器
driver = webdriver.Chrome()
# 导航至百度首页
driver.get("www.baidu.com")
# 获取输入框
element = driver.find_element(By.ID, "kw")
# 向输入框内输入webdriver文本并按下Enter键
element.send_keys("webdriver" + Keys.ENTER)
# 关闭浏览器
driver.close()
清除内容
element.clear()
既然有输入内容,那么肯定就会有清除内容这一操作。selenium删除元素内容,是通过clear函数实现的。与输入内容操作一致,清除内容操作也仅支持内容可编辑元素。
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打开Chrome浏览器
driver = webdriver.Chrome()
# 导航至百度首页
driver.get("www.baidu.com")
# 获取输入框
element = driver.find_element(By.ID, "kw")
# 向输入框内输入webdriver文本
element.send_keys("webdriver")
# 清空输入框文本
element.clear()
# 关闭浏览器
driver.close()
表单提交
在Selenium 4中,不再通过单独的端点以及脚本执行的方法来实现。因此,建议不要使用此方法,而是单击相应的表单提交按钮。
下拉框选择
select = Select(element)
对于下拉框的操作,当获取到element对象后,基于element对象来创建一个select对象。然后,调用select对象的方法来实现对下拉框的操作。该操作仅支持HTML中的下拉框元素,也就是<select>元素。
1、选择
# 根据索引选择下拉框的某一项
select.select_by_index(index)
# 根据option的value属性选择下拉框的某一项
select.select_by_value(value)
# 根据下拉框选项的文本来选择下拉框的某一项
select.select_by_visible_text(text)
2、取消选择
# 根据索引取消选择
select.deselect_by_index(index)
# 根据value属性取消选择
select.deselect_by_value(value)
# 根据文本取消选择
select.deselect_by_visible_text(text)
# 取消选择所有选中的选项
select.deselect_all()
3、获取所有选中的选项
select.all_selected_options
4、获取所有选中的选项中的第一项
select.first_selected_option
5、获取下拉框的所有项(option元素)
select.options