python webdriver之expected_conditions和actionchains

expected_conditions 判断元素出现的条件

有些页面的下拉栏,需要鼠标移动过去,才会出现,这个时候则需要一个判断,用到expected_conditions。如图所示的操作。
在这里插入图片描述

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 = webdriver.Chrome()
#打开百度
driver.get("https://baidu.com")
#最大化
driver.maximize_window()
#等待“设置”元素出现
a=EC.visibility_of_element_located((By.ID,"s-usersetting-top"))
WebDriverWait(driver,10).until((a))
#点击“设置”
driver.find_element_by_id("s-usersetting-top").click()
driver.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a[1]/span').click()
time.sleep(2)
#等待“保存设置”元素出现,点击保存
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//*[@id="se-setting-7"]/a[2]')))
driver.find_element_by_xpath('//*[@id="se-setting-7"]/a[2]').click()
ActionChains 模拟鼠标操作

这里模拟的是,鼠标移动的效果,停留在悬浮下拉框。
在这里插入图片描述

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
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 = webdriver.Chrome()
#打开百度
driver.get("https://baidu.com")
#最大化
driver.maximize_window()
#找到“设置”这个元素
ele=driver.find_element_by_id("s-usersetting-top")
#实例化ActionChains类
ac = ActionChains(driver)
#将鼠标移动到“设置”
ac.move_to_element(ele)
#调用perform执行命令
ac.perform()
time.sleep(4)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值