是否支持在c#中使用弹出对话框(特别是文件下载)?Selenium WebDriver for C# - 弹出对话框
1
A
回答
2
从WebDriver FAQ:WebDriver提供了处理多个窗口的能力。这是通过使用“WebDriver.switchTo()。window()”方法切换到具有已知名称的窗口完成的。如果名称未知,可以使用“WebDriver.getWindowHandles()”获取已知窗口的列表。您可以将句柄传递给“switchTo()。window()”。
Full FAQ here。
Example从ThoughtWorks的
String parentWindowHandle = browser.getWindowHandle(); // save the current window handle.
WebDriver popup = null;
Iterator<String> windowIterator = browser.getWindowHandles();
while(windowIterator.hasNext()) {
String windowHandle = windowIterator.next();
popup = browser.switchTo().window(windowHandle);
if (popup.getTitle().equals("Google") {
break;
}
}
下面是从Java转换成C#的示例(与弃用方法替换)
String parentWindowHandle = _browser.CurrentWindowHandle; // save the current window handle.
IWebDriver popup = null;
var windowIterator = _browser.WindowHandles;
foreach (var windowHandle in windowIterator)
{
popup = _browser.SwitchTo().Window(windowHandle);
if (popup.Title == "Google")
{
break;
}
}
2
否,不存在 - 至少不本身。
WebDriver只与网页交互。弹出对话框一旦实例化,就成为操作系统的域而不是网页。
您可以通过发出带有正在检索或发送到服务器的内容的POST或GET来绕过文件下载/上载对话框。
您可以使用诸如AutoIt或Windows自动化API之类的工具与其他对话窗口进行交互。
3
对于一个弹出窗口的对话框,您可以使用警报追赶:
IAlert alert = driver.SwitchTo().Alert();
alert.Accept();
相关问题
- 1. 用Selenium Webdriver C关闭弹出窗口对话框#
- 2. 弹出对话框
- 3. 弹出对话框提交
- 4. android:弹出菜单,弹出对话框
- 5. 模态对话框存在(硒:: webdriver的::错误:: UnhandledAlertError)驳回确认弹出
- 6. Selenium Webdriver - 登录弹出窗口只出现在webdriver上
- 7. jQuery对话框弹出
- 8. JQuery-mobile弹出/对话框?
- 9. WIX弹出对话框
- 10. Android弹出对话框
- 11. 创建对话框/弹出
- 12. 显示弹出对话框
- 13. 弹出窗口对话框
- 14. 弹出对话框问题
- 15. 弹出样式对话框
- 16. asp.net mvc&弹出对话框
- 17. 弹出jquery对话框
- 18. 弹出对话框 - iOS
- 19. Tkinter/Python弹出对话框
- 20. primefaces弹出对话框
- 21. Selenium WebDriver Python:无法切换到弹出
- 22. Selenium Webdriver处理弹出式窗口
- 23. MonoTouch for iPad:如何显示弹出对话框?
- 24. WebDriver关闭弹出框
- 25. 保存对话框不能互动 - Selenium Webdriver与Java
- 26. Callable Tkinter Toplevel弹出对话框
- 27. 无法使用selenium webdriver从弹出框切换回父窗口
- 28. Selenium WebDriver如何关闭浏览器弹出框
- 29. Python复选框弹出对话框类