机器人类没有关注WebDriver中的浏览器窗口

时间:2018-04-09 08:24:16

标签: selenium selenium-webdriver focus selenium-chromedriver awtrobot

我使用Selenium WebDriverjava.awt.Robot类来处理文件上传过程中的对话窗口,文件选择器。我使用Chromedriver来处理浏览器。如果焦点不在浏览器窗口上,Robot会将文本粘贴到实际的活动字段而不是浏览器窗口。 如果不打开对话框窗口,我无法直接将文件发送到此输入字段。

2 个答案:

答案 0 :(得分:0)

我是否正确x打开文件选择器对话框后想要将命令发送到浏览器?

要解决此问题,您可以获取浏览器的窗口句柄

Set<String> handles = driver.getWindwoHandles();

之后你使用

sriver.switchTo().window(windowHandleOfYourBrowser);

切换到Chrome浏览器。

答案 1 :(得分:0)

我希望java.awt.Robot无法控制Selenium WebDriver。天气浏览器处于焦点或不是java.awt.Robot执行它的操作。

在您的情况下,您可以关注浏览器并调用机器人方法。

在机器人类方法之前......

//Get back the focus 
((JavascriptExecutor) webDriver).executeScript("window.focus();");

//机器人类方法......

希望这能解决您的问题。