如何在不使用机器人的情况下关闭打开的文件
How to close an opened file without using robot
我正在使用 Selenium 测试网站。我可以上传一个“.txt”文件,然后双击它打开,但我无法使用 selenium 关闭打开的文件!!!
我知道有一个使用 Alt+F4 的机器人工具解决方案,但我不允许使用机器人,我尝试了下面的 selenium 代码来关闭 window,它不起作用:
action.sendKeys(Keys.chord(Keys.ALT,Keys.F4)).build().perform();
试试这个(driver
是 WebDriver
的一个实例):
String myWindow = driver.getWindowHandle();
//open file with double click
//do something ...
driver.switchTo().window(myWindow);
这会存储原始 window 的句柄并切换回它。另一个 window 可能仍在后台打开,但如果您调用 driver.quit();
将关闭
感谢:CODEBLACK
String parentHandle = driver.getWindowHandle(); // get the current window handle
driver.findElement(By.xpath("//*[@id='someXpath']")).click(); // click some link that opens a new window
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle); // switch focus of WebDriver to the next found window handle (that's your newly opened window)
}
//code to do something on new window
driver.close(); // close newly opened window when done with it
driver.switchTo().window(parentHandle); // switch back to the original window
[1]:
我正在使用 Selenium 测试网站。我可以上传一个“.txt”文件,然后双击它打开,但我无法使用 selenium 关闭打开的文件!!!
我知道有一个使用 Alt+F4 的机器人工具解决方案,但我不允许使用机器人,我尝试了下面的 selenium 代码来关闭 window,它不起作用:
action.sendKeys(Keys.chord(Keys.ALT,Keys.F4)).build().perform();
试试这个(driver
是 WebDriver
的一个实例):
String myWindow = driver.getWindowHandle();
//open file with double click
//do something ...
driver.switchTo().window(myWindow);
这会存储原始 window 的句柄并切换回它。另一个 window 可能仍在后台打开,但如果您调用 driver.quit();
感谢:CODEBLACK
String parentHandle = driver.getWindowHandle(); // get the current window handle
driver.findElement(By.xpath("//*[@id='someXpath']")).click(); // click some link that opens a new window
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle); // switch focus of WebDriver to the next found window handle (that's your newly opened window)
}
//code to do something on new window
driver.close(); // close newly opened window when done with it
driver.switchTo().window(parentHandle); // switch back to the original window
[1]: