web自动化之鼠标悬停事件

前言:我们在操作浏览器的时候,都需要一些鼠标悬停才能显示的下拉框或者选择下拉框的内容。

鼠标操作类是 ActionChains
鼠标事件有:
 1. 悬浮 - 用的最多最多 move_to_element
 2. 右键 context_click
 3. 点击 click
 4. 双击 double_click
 5. 拖拽 drag_and_drop
 6. 滚动 — js
 7. 按住左键不松 click_and_hold
 8. 释放 release

执行的命令:
 1. 重置 reset_actions
 2. 执行操作 perform() # 一定要带

我们选百度首页的下拉框来做操作。如下:
在这里插入图片描述
只有鼠标悬浮才能现在下拉列表
代码实现:

from selenium.webdriver.common.action_chains import ActionChains
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

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

#找到设置
ele = driver.find_element_by_xpath('//*[@id="u1"]//a[@name="tj_settingicon"]')
#鼠标悬停
ActionChains(driver).move_to_element(ele).perform()
#点击“高级搜索”
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[text()="高级搜索"]')))
driver.find_element_by_xpath('//a[text()="高级搜索"]').click()

那根据高级搜索 里的下拉框我们怎么处理? 使用 Select方法就可以搞定
在这里插入图片描述

具体代码如下:

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
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


driver = webdriver.Chrome()
driver.get("http://www.baidu.com")


#找到设置
ele = driver.find_element_by_xpath('//*[@id="u1"]//a[@name="tj_settingicon"]')
#鼠标悬停
ActionChains(driver).move_to_element(ele).perform()
#点击“高级搜索”
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[text()="高级搜索"]')))
driver.find_element_by_xpath('//a[text()="高级搜索"]').click()
# 1、找到select元素对象,实例化Select类。
WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.XPATH,'//select[@name="ft"]')))
s = Select(driver.find_element_by_xpath('//select[@name="ft"]'))
#2、选择下拉框的值,下拉框的值可以通过value,index,text三种方法选择option对应的值,以下三种方法任选其一,或者都可以写进代码里,互不影响
time.sleep(2)
#2.1 通过value值来定位
s.select_by_value("ppt")
time.sleep(2)
#2.2通过下标来定位
s.select_by_index(1)  # 从0开始
time.sleep(2)
#通过text文本来定位
s.select_by_visible_text("所有格式")

:在鼠标悬停的时候,请不要触碰鼠标,以免发生错误

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值