selenium自动化鼠标操作及下拉列表

鼠标操作

鼠标操作类:ActionChains 模拟鼠标操作

from selenium.webdriver.common.action_chains import ActionChains

鼠标动作:动作放在一个动作列表中,动作一定要有执行(perform())要不不会执行

     双击:double_click()

     单击:click()

     右击:context_click()

     悬浮:mover_to_element() **重点

     按住鼠标的左键:click_and_hold  释放:release

     拖拽:drag_and_drop(传两个参数)

     执行动作:perform()

     暂停:pause(单位秒)

from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 鼠标
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.maximize_window()  # 最大化浏览器
driver.get("file:///E:/WebWebpageTest/page.html")

# 悬浮的元素 //button[text()="注册用户"]
# 1、实例化 ActionChains 类
ac = ActionChains(driver)
# 2、添加鼠标动作:调用对应的鼠标动作函数
ele = driver.find_element_by_xpath('//select[@id="select"]')
ac.move_to_element(ele).click(ele)  # 悬浮并点击,鼠标类可以链条式的操作,因为它返回的是自己本身
ac.double_click(ele)  # 双击
# 3、执行鼠标动作:perform()
ac.perform()

# 下拉列表:1、触发下拉列表出现,2、等地你要操作的元素可见,3、选择你要操作的元素
loc = (By.XPATH, '//select[@id="select"]//option[@value="sh"]')
WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()

driver.quit()

下拉列表

select / option 类型的下拉列表,有专门的 Select 类处理

引入类:from selenium.webdriver.support.select import Select

初始化:参数是一个select 元素对象

标签名必须为:select

from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 下拉操作
from selenium.webdriver.support.select import Select

driver = webdriver.Chrome()
driver.maximize_window()  # 最大化浏览器
driver.get("file:///E:/WebWebpageTest/page.html")

# 等待元素出现
loc = (By.XPATH, '//select[@id="select"]')
WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))

# 下拉列表:1、触发下拉列表出现,2、等地你要操作的元素可见,3、选择你要操作的元素
# 1、初始化:参数必须是一个select元素对象
select_ele = driver.find_element_by_xpath('//select[@id="select"]')
s = Select(select_ele)

# 2、选择下拉列表中的值:1、value属性,2、下标,从零开始,3、文本定位
# 通过value属性
s.select_by_value('sh')
time.sleep(2)
# 通过下标
s.select_by_index(2)
time.sleep(2)
# 通过文本
s.select_by_visible_text('重庆')
time.sleep(2)

driver.quit()
原文地址:https://www.cnblogs.com/yongzhuang/p/12505680.html