问题描述
我正在使用 python 进行 selenium 项目。文件上传有一个功能,当我们点击选择文件按钮时,会出现一个窗口句柄,我们可以在其中选择要上传的文件。由于 selenium 无法识别 Windows UI 元素以使用窗口句柄,因此我创建了一个使用 pyAutoit 库来搜索和选择文件的方法。在本地机器上工作时,脚本工作正常。但是,当我尝试在 Docker 上以无头模式运行相同的脚本时,似乎没有出现窗口句柄并且在 docker 上运行时。它一直在等待窗口句柄。
def handle_browse_dialog(self,doc_address):
autoit.win_wait_active("Open") #the program gets stuck on this line
time.sleep(2)
autoit.control_send("Open","[CLASS:Edit; INSTANCE:1]",doc_address)
time.sleep(2)
autoit.control_click("Open","[CLASS:Button; INSTANCE:1]")
autoit.win_close("Open")
除了 pyautoit 库之外,我还尝试了其他库,如 (pyautogui、win32com) 来处理 Windows 句柄,但面临上述相同的问题。
docker_compose.yml
version: "3" services: selenium-hub: image: selenium/hub:latest #container_name: selenium-hub ports: - "4444:4444" chrome1: image: selenium/node-chrome:latest volumes: - /dev/shm:/dev/shm depends_on: - selenium-hub environment: - HUB_HOST=selenium-hub - HUB_PORT=4444 chrome2: image: selenium/node-chrome:latest volumes: - /dev/shm:/dev/shm depends_on: - selenium-hub environment: - HUB_HOST=selenium-hub - HUB_PORT=4444 firefox: image: selenium/node-firefox:latest volumes: - /dev/shm:/dev/shm depends_on: - selenium-hub environment: - HUB_HOST=selenium-hub - HUB_PORT=4444
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)