我将Selenium WebDriver
与java.awt.Robot
类一起使用来处理对话框窗口,文件上传过程中的文件选择器。我使用Chromedriver
来处理浏览器。如果焦点不在浏览器窗口上,Robot
将文本粘贴到实际活动字段而不是浏览器窗口。 如果不打开对话框窗口,我无法将文件直接发送到此输入字段。
我是对的 xou 想在打开文件选择器对话框后向您的浏览器发送命令吗?
要解决此问题,您可以获取浏览器的窗口句柄
Set<String> handles = driver.getWindwoHandles();
之后你使用
sriver.switchTo().window(windowHandleOfYourBrowser);
以切换到您的 Chrome 浏览器。
我希望java.awt.Robot
无法控制Selenium WebDriver
.浏览器是否处于焦点状态java.awt.Robot
执行其操作。
在您的情况下,您可以使浏览器专注于并调用您的机器人方法。
在机器人类方法之前...
//Get back the focus
((JavascriptExecutor) webDriver).executeScript("window.focus();");
机器人类方法...
希望这能解决您的问题。