一、鼠标操作
在selenium中由ActionChains类来完成模拟鼠标操作。
主要流程为:
1)实例化鼠标操作类
2)调用各种鼠标行为,存储鼠标操作(append)
3)调用perform()方法去执行
实例如:百度设置
1 from selenium import webdriver 2 from selenium.webdriver.support.wait import WebDriverWait 3 from selenium.webdriver.support import expected_conditions as EC 4 from selenium.webdriver.common.by import By 5 import time 6 #鼠标操作--引入鼠标操作类 7 from selenium.webdriver.common.action_chains import ActionChains
8 driver = webdriver.Chrome() 9 driver.get("https://www.baidu.com") 10 driver.maximize_window() 11 time.sleep(3) 12 13 #1、实例化鼠标操作类 -- 参数是WebDriver实例 14 mouse_action = ActionChains(driver) 15 #2、鼠标悬停 -- 菜单出现 -- perform()执行 16 mouse_action.move_to_element(driver.find_element_by_xpath('//*[@id="u1"]//a[text()="设置"]')).perform() 17 time.sleep(3) 18 19 #等待元素可见 20 ele_locator = '//a[text()="高级搜索"]' 21 WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,ele_locator))) 22 driver.find_element_by_xpath(ele_locator).click() 23 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)调用各种下拉框方法,对下拉类表的元素进行操作
实例如:百度-设置-高级搜索
#引入下拉框操作类
from selenium.webdriver.support.ui import Select
1 #Select下拉列表操作 2 #1、实例化Select类 -- 参数是webelement对象 3 select = Select(driver.find_element_by_name("ft")) 4 #2.1 通过下标来选择 5 select.select_by_index(2) 6 time.sleep(3) 7 #2.2 通过value属性来选择 8 select.select_by_value("ppt") 9 time.sleep(3) 10 #2.3 通过文本内容来选择 11 select.select_by_visible_text("所有格式") 12