0


pyautogui 配合 selenium 实现桌面坐标系定位元素坐标,模拟真实鼠标行为

pyautogui 配合 selenium 实现桌面坐标系定位元素坐标,模拟真实鼠标行为。

场景:当我需要点击某个元素,或者触发浏览器的自动填充账号密码时,自动化点击无效。但是想要模拟真实鼠标点击又需要元素的坐标通过pyautogui来实现。通过selenium node.location获取的坐标是相当于浏览器实际内容窗口的坐标系,不能满足pyautogui 直接去自动化操作。这时可以通过浏览器js 获取菜单等实际边框大小计算出 实际的node.location零点位置相对于桌面坐标的坐标系,从而得出元素在桌面坐标系的位置。这样不管怎么操作一般都不会相差太多。
注:未考虑滑动条存在的情况
代码如下:

def get_node_position(driver, node):"""
    获取元素相对于window窗口上的绝对坐标:param driver: 浏览器自动化对象
    :param node: 定位到的元素对象
    :return:"""
    window_rect = driver.get_window_rect()
    menu = driver.execute_script("return window.outerHeight - window.innerHeight")
    border = driver.execute_script("return window.outerWidth -  window.innerWidth")
    origin_y = window_rect['y']+ menu -(border /2)
    origin_x = window_rect['x']+(border /2)return{"x":node.location['x']+origin_x,"y":node.location['y']+origin_y}// pyautogui 左键点击import pyautogui as gui
gui.click(100,100)
标签: selenium

本文转载自: https://blog.csdn.net/qq_42709514/article/details/132164115
版权归原作者 _JackSparrow 所有, 如有侵权,请联系我们删除。

“pyautogui 配合 selenium 实现桌面坐标系定位元素坐标,模拟真实鼠标行为”的评论:

还没有评论