一、鼠标操作
在selenium中由ActionChains类来完成模拟鼠标操作。
主要流程为:
1)实例化鼠标操作类
2)调用各种鼠标行为,存储鼠标操作(append)
3)调用perform()方法去执行
实例如:百度设置
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
#鼠标操作--引入鼠标操作类
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
time.sleep(3)
#1、实例化鼠标操作类 -- 参数是WebDriver实例
mouse_action = ActionChains(driver)
#2、鼠标悬停 -- 菜单出现 -- perform()执行
mouse_action.move_to_element(driver.find_element_by_xpath('//*[@id="u1"]//a[text()="设置"]')).perform()
time.sleep(3)
#等待元素可见
ele_locator = '//a[text()="高级搜索"]'
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,ele_locator)))
driver.find_element_by_xpath(ele_locator).click()
time.sleep(3)
鼠标操作常用方法:
click #单击元素指定元素
click_and_hold #在指定元素按下鼠标和release配套使用
context_click #右击
double_click #双击
drag_and_drop #拖拽动作
drag_and_drop_by_offset #从当前元素按下鼠标左键往指定的(x,y)坐标移动,然后释放鼠标
key_down #按下指定的键盘按键
key_up #释放当前键盘按键
move_by_offset #将鼠标从当前位置移动至指定的(x,y)坐标
move_to_element #将鼠标悬停
move_to_element_with_offset #将鼠标移动到指定的元素,其偏移(x,y)是相对该元素的 左上角的偏移
release #在当前元素释放鼠标,和click_and_hold配套使用
send_keys #在当前焦点的元素中模拟键盘输入
send_keys_to_element #给指定元素模拟键盘输入
perform #运行一组鼠标键盘动作
二、下拉框操作
在selenium中由Select类来处理select/option。
主要流程为:
1)实例化下拉框操作类
2)调用各种下拉框方法,对下拉类表的元素进行操作
实例如:百度-设置-高级搜索
#Select下拉列表操作
#1、实例化Select类 -- 参数是webelement对象
select = Select(driver.find_element_by_name("ft"))
#2.1 通过下标来选择
select.select_by_index(2)
time.sleep(3)
#2.2 通过value属性来选择
select.select_by_value("ppt")
time.sleep(3)
#2.3 通过文本内容来选择
select.select_by_visible_text("所有格式")