处理没有焦点的浏览器对话框 window

Handle browser dialog window without focus

我有一个基于 Selenium WebDriver 的脚本来自动上传文件。它一个接一个地上传文件列表。我使用 AutoIT 脚本来处理对话框 window、文件选择器 window。参数$CmdLine[1]包含实际文件的路径。

ControlFocus("Open a file","","Edit1")
ControlSetText("Open a file","","Edit1", $CmdLine[1])
ControlClick("Open a file","","Button1")

我从 Java 代码执行如下:

Runtime.getRuntime().exec(autoITExecutable);

它会打开对话框 window,因此如果不聚焦在浏览器上就无法工作 window。

文件上传字段像这个演示一样工作: https://encodable.com/uploaddemo/

按照如下所示的类似格式尝试您的代码并尝试:

WinWaitActive("File Upload") // enter the title of the pop up

Send("Path of the file to enter")   // enter the path of the file to upload

Send("{ENTER}") / press enter

我 运行 你给的 link 的简单脚本,效果很好

import os
from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://encodable.com/uploaddemo/")

driver.find_element_by_name("uploadname1").send_keys(os.getcwd() + "/test.csv")

driver.find_element_by_name("email_address").send_keys("none@getnada.com")
driver.find_element_by_name("first_name").send_keys("Tarun")
driver.find_element_by_id("uploadbutton").click()