是否支持在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複選框彈出對話框類