我打開2個瀏覽器並且Selenium Webdriver可以在這兩者之間切換。一個窗口在前景中,另一個在後臺。在工作流程中,模式對話框會在後臺窗口中打開,因此webdriver無法對其執行任何操作。除了將背景窗口置於前景之外,還有其他解決方案嗎? 我正在使用C#。當窗口沒有對焦時,Selenium Webdriver無法點擊模式對話框
0
A
回答
1
循環顯示您的窗口句柄,並檢查是否出現模態對話框。
string current_window = driver.CurrentWindowHandle;
foreach (string window in driver.WindowHandles)
{
driver.SwitchTo().Window(window);
if (GetModal())
{
//do actions here
break;
}
}
driver.SwitchTo().Window(current_window); //To put you back where you started.
private bool GetModal()
{
Try
{
IWebElement modal = driver.FindElementByXPath("");
return true;
}
catch
{
return false;
}
}
根據你應該把這個工作。如果你找不到模態,那麼可能會有一個不同的問題,而不是窗口沒有被聚焦。如果您擔心其他錯誤,那麼我會說只捕獲捕獲中的特定錯誤,並讓其他所有的錯誤都浮上去。
0
我使用下面的代碼
try{
//your code which will generate Modal Dialog
} catch (Exception e) {
if (e.getMessage().contains("Modal dialog present")) {//For Handling modal dialog in firefox
(new Robot()).keyPress(java.awt.event.KeyEvent.VK_ESCAPE);
(new Robot()).keyRelease(java.awt.event.KeyEvent.VK_ESCAPE);
}else if(e.getMessage().contains("unexpected alert open")){//For Handling modal dialog in chrome
driver.switchTo().alert().accept();
}
}
相關問題
- 1. Selenium WebDriver - 無法將焦點切換到模態對話框窗口
- 2. 當對話框沒有焦點時,無法點擊保存按鈕
- 3. 當對話框按鈕被點擊時泄露的窗口
- 4. 使用Selenium WebDriver上傳文件 - 無法與對話框窗口交互C#
- 5. 如何在失去焦點時摧毀無模式對話框?
- 6. 用Selenium Webdriver C關閉彈出窗口對話框#
- 7. 無法對焦窗口
- 8. Lync對話窗口竊取焦點沒有UISuppression
- 9. Qt的 - 在窗口模式對話框
- 10. 關閉無模式對話框時,另一個窗口關閉
- 11. 當外部點擊時關閉Jquery模式對話框
- 12. 當我點擊驅動shoing opwn與窗口對話框
- 13. 無法點擊AngularJS模態對話框彈出
- 14. 保存沒有對話框窗口
- 15. 無法添加窗口Android對話框
- 16. 當點擊它時關閉對話框
- 17. 顯示對話框後無法將焦點返回到主窗口
- 18. selenium webdriver停止工作,當點擊不同的窗口
- 19. 當用戶點擊外部時關閉WPF對話窗口
- 20. MFC創建不失焦點的無模式對話框
- 21. 無法找到模態對話框窗口中的文本框?
- 22. 頂層窗口,子窗口,對話框(模態)窗口和非對話框(無模式)窗口之間有什麼區別?
- 23. 無法取得過去的Modal對話框(Selenium :: WebDriver :: Error :: UnhandledAlertError)
- 24. 如何處理對話框窗口點擊硒webdriver中的按鈕
- 25. JQuery確認對話框焦點導致主窗口下拉失去焦點
- 26. Extjs模式窗口對焦控制
- 27. Selenium WebDriver for C# - 彈出對話框
- 28. 當外部點擊時,Android自定義對話框窗口關閉了嗎?
- 29. 如何使用javascript自動點擊dhtml模式對話框窗口按鈕?
- 30. 單擊父對話框時將無模式子對話框置於頂端
你在代碼方面嘗試過什麼? – Purus