python-selenium -- 鼠标、下拉框

一、鼠标操作

在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("所有格式")

猜你喜欢

转载自www.cnblogs.com/simran/p/9248458.html