处理没有焦点的浏览器对话框 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()
我有一个基于 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()