如何使用selenium webdriver(python)将鼠标移动(pyautogui)附加到pyvirtualdisplay?

如何使用selenium webdriver(python)将鼠标移动(pyautogui)附加到pyvirtualdisplay?,python,selenium-webdriver,mouse,pyautogui,pyvirtualdisplay,Python,Selenium Webdriver,Mouse,Pyautogui,Pyvirtualdisplay,我试图自动化一个网站如何有一个SWF内 我不能用selenium移动鼠标,因为它是一个SWF,所以要解决这个问题,我使用pyautogui库 一切正常!,但是当我使用pyvirtualdisplay隐藏导航器时,鼠标没有连接,因此我仍然可以看到pyautogui如何移动鼠标 我的示例代码: from selenium import webdriver from pyvirtualdisplay import Display import pyautogui display = Display(

我试图自动化一个网站如何有一个SWF内

我不能用selenium移动鼠标,因为它是一个SWF,所以要解决这个问题,我使用pyautogui库

一切正常!,但是当我使用pyvirtualdisplay隐藏导航器时,鼠标没有连接,因此我仍然可以看到pyautogui如何移动鼠标

我的示例代码:

from selenium import webdriver
from pyvirtualdisplay import Display
import pyautogui

display = Display(visible=1, size=(1600,900))
display.start()


driver = webdriver.Firefox()
driver.set_window_size(1600,900)
driver.get('https://website.where.I.have.the.SWF.com')

sleep(5)
pyautogui.click(450, 180)

driver.close()
display.stop()

如何将鼠标连接到pyvirtualdisplay实例?

您可以对pyautogui内部进行monkey修补。在“xvfb”后端上测试

import os
from pyvirtualdisplay import Display
import pyautogui
import Xlib.display

v_display = Display(visible=1, size=(1600,900))
v_display.start()  # this changes the DISPLAY environment variable
# sadly, pyautogui does not detect this change
pyautogui._pyautogui_x11._display = Xlib.display.Display(
                os.environ['DISPLAY']
            )
...
pyautogui.click(...)  # clicks on v_display
...

v_display.stop()
注意:这应足以启用pyautogui鼠标,使用键盘可能需要额外配置键映射。 有关更多信息,请参阅: