【python】Selenium中鼠标&键盘&js操作

本文详细介绍了Selenium中如何进行鼠标操作,包括ActionChains的基本原理、常用方法及其应用示例。接着讲解了键盘操作,利用Keys库实现不同按键的模拟,并给出了错误展示。最后探讨了JS脚本的运用,解释了Python如何通过WebDriver执行JS代码,以及在实际操作中如何修改只读属性的优化技巧。
摘要由CSDN通过智能技术生成

一.鼠标操作

主要使用selenium中的ActionChains类

AcitonChains基本原理

ActionChains的执行原理是,当调用ActionChain方法的时候不会立即执行,而是使用一个队列,当调用perform()方法的时候,队列中的时间会依次执行

来自源码,可以看到这里有个列表_action 用来临时存储需要执行的队列

from selenium.webdriver.common.action_chains import ActionChains

    def __init__(self, driver):
        """
        Creates a new ActionChains.

        :Args:
         - driver: The WebDriver instance which performs user actions.
        """
        self._driver = driver
        self._actions = []
        if self._driver.w3c:
            self.w3c_actions = ActionBuilder(driver)

然后返回的都是self,也就是链式调用。

ActionChains 常用方法列表
  • click()——单击鼠标左键
  • context_click(on_element=None) ——点击鼠标右键
  • double_click(on_element=None) ——双击鼠标左键
  • drag_and_drop(source, target) ——拖拽到某个元素然后松开
  • move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
  • move_to_element(to_element) ——鼠标移动到某个元素
  • perform() ——执行链中的所有动作
  • release(on_element=None) ——在某个元素位置松开鼠标左键

这里问题:为什么双击不可以用

ac.click().click()

因为:click()方法返回的数据都是None,不利于之后的操作与断言

使用展示

这里可以把鼠标的每一步操作都分开写

action = ActionChains(driver)
# 1.鼠标悬停
action.move_to_element()
# 2.点击动作
action.click()
# 3.右击
action.context_click()
# 4.perform结束
action.perform()

也可以放在一起写

ActionChains(driver).move_to_element(testa).click(test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值