selenium之鼠标动作链

定位除了使用xpath,css选择器定位外,还可以使用鼠标动作链来进行定位;

  • 导入模块:from selenium.webdriver import ActionChains
  • 鼠标移动事件:
    • ActionChains(driver).move_to_element(元素的位置).perform()
  • 鼠标左击事件:
    • ActionChains(driver).click(元素的位置).perform()
  • 鼠标左双击事件:
    • ActionChains(driver).double_click(元素的位置).perform()
  • 鼠标右击事件:
    • ActionChains(driver).context_click(元素的位置).perform()
  • 鼠标左击并保持:
    • ActionChains(driver).click_and_hold(元素的位置).perform()
  • 将元素拖到指定元素并松开:
    • ActionChains(driver).drag_and_drop(原元素的位置, 新元素的位置).perform()
  • 将元素拖到指定坐标位置(以当前元素为起点):
    • ActionChains(driver).move_by_offset(x坐标, y坐标).perform()
  • 释放鼠标点击状态:
    • ActionChains(driver).release(xxx).perform()

基础案例:

python 复制代码
import time
from selenium.webdriver import Edge
from selenium.webdriver.common.keys import Keys
# 创建edge浏览器对象
driver = Edge()
# 打开浏览器访问网址
driver.get("https://www.lagou.com/")
# 提取`全国`标签的位置
el = driver.find_element_by_xpath('//*[@id="changeCityBox"]/p[1]/a')  # selenium4.0后废除该方法
# 鼠标点击时间 -- 点击el对象
el.click()
time.sleep(1)
# 找到文本框,输入指定的内容 -- 然后按回车
driver.find_element_by_xpath('//*[@id="search_input"]').send_keys("python", Keys.ENTER)
# 找到元素的所在标签位置 -- 存在li_list列表内
li_list = driver.find_elements_by_xpath('//*[@id="s_position_list"]/ul/li')
# 遍历li_list列表,并取出相应的内容
for li in li_list:
    job_firm = li.find_elements_by_xpath('./div/div[2]/div/a')[0].text
    job_name = li.find_elements_by_tag_name('h3')[0].text
    job_money = li.find_elements_by_xpath('./div/div/div[2]/div/span')[0].text
    print(job_firm, job_name, job_money)
相关推荐
祉猷并茂,雯华若锦1 天前
Win下完美解决Allure报错,生成Web自动化测试报告
android·python·selenium·自动化
测试修炼手册1 天前
[测试技术] Selenium WebDriver 入门与实战:稳定等待、Page Object 与失败排障
selenium·测试工具
ClouGence2 天前
哪些场景适合做自动化测试?这 4 类最值得优先投入
selenium·测试
ClouGence2 天前
Selenium vs CueCast:自动化测试一定要写代码吗?
selenium·测试
ClouGence4 天前
自动化测试,如何让每个用例都保持登录状态?
selenium·测试
ClouGence4 天前
手动测试工程师有必要学自动化测试吗?手工测试还有前途吗?
selenium·测试·求职
小小测试开发5 天前
Playwright vs Selenium vs Cypress:从浏览器协议到 API 设计的全面对比与实测
人工智能·selenium·测试工具
一孤程5 天前
Pytest+Selenium搭建自动化框架-保姆级实战教程
selenium·自动化·pytest
天才测试猿6 天前
Selenium自动化测试网页加载太慢怎么解决?
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
李宸净7 天前
Web自动化测试selenium+python
前端·python·selenium