首页 > 解决方案 > 如何调整 Selenium 元素坐标和 PyAutoGUI 坐标之间的可变性?

问题描述

我正在尝试将鼠标指针移动到网页上的某个元素。我曾经elem = driver.find_element_by_xpath(xpath)定位元素,并elem.location获取它的 x、y 坐标。但是,当我使用 PyAutoGUI 将鼠标指针移动到这些坐标时,它们最终会出现在其他位置。Selenium 给出的位置坐标似乎并不是真正的屏幕坐标。

经过进一步的探索,我得到了以下结果:

driver.maximize_window()
print("Window size (Selenium):", driver.get_window_size())
print("Window position (Selenium):", driver.get_window_position())
print("Window size (PyAutoGUI):", pyautogui.size())

输出:

Window size (Selenium): {'width': 1552, 'height': 840}
Window position (Selenium): {'x': -8, 'y': -8}
Window size (PyAutoGUI): Size(width=1920, height=1080)

这再次表明屏幕上的坐标与 selenium 返回的坐标不同。

我知道 selenium webdriver 的move_to_element方法,它可以让我们直接到达元素的位置,但它实际上并没有移动屏幕上的鼠标指针。最后,我正在寻找一种将鼠标指针实际移动到任何给定元素的方法。任何帮助表示赞赏。谢谢!

标签: pythonseleniumselenium-webdriverweb-scrapingpyautogui

解决方案


推荐阅读