1

我正在更新使用Selenium webdriver進行瀏覽器測試的C#測試框架。在啓動每個測試用例時,我需要繞過Windows Secruity彈出窗口(IE11:v11.187.14393.0)才能進入我正在測試的開發網站。我以前使用AutoIt時使用了以下代碼。Windows 10 - IE 11 Windows Secruity Popup - AutoIT不返回任何控制信息。

 AutoItX3 autoIt = new AutoItX3(); 
     string windowTitle = "Windows Security"; 

     // Wait 30 seconds max... 
     autoIt.WinWait(windowTitle, string.Empty, 30); 

     // Need to wait for input fields to load... 
     Thread.Sleep(2000); 

     autoIt.WinActivate(windowTitle); 
     autoIt.ControlSetText(windowTitle, string.Empty, "[CLASS:Edit; INSTANCE:1]", username); 
     autoIt.ControlSetText(windowTitle, string.Empty, "[CLASS:Edit; INSTANCE:2]", password); 
     autoIt.ControlClick(windowTitle, "OK", "[CLASS:Button; INSTANCE:2]"); 
     autoIt.WinWaitClose(windowTitle, string.Empty, 10); 

因爲我已經更新我的操作系統爲windows 10和彈出框已經改變(見下文)

See new security popup example

See old secruity popup example

AutoIt的檢查員不再返回任何控制信息對於sruity彈出窗口中的任何對象,所以我無法與它們交互。(請參見下面什麼,他檢查了用戶名輸入框返回)

窗口< < < < 標題:Windows安全 類:憑據對話框的XAML主機 位置:732,354 尺寸: 456,386 風格:0x96C80000 ExStyle:0x00200100 句柄:0x00000000015B1204

控制< < < < 類別:
實例:
ClassnameNN:
名稱:
高級(類):
ID: 文本:
位置:
尺寸:
ControlClick座標:
風格:
ExStyle:
手柄:

鼠標< < < < 位置:816,548 光標ID:0 顏色:0xF0F0F0

的StatusBar < < < <

ToolsBar < < < <

可見文本< < < <

隱藏文本< < < <

我曾嘗試在活動窗口指向的AutoIt並直接發送密鑰,但此心不是工作要麼。 (見下面的代碼)。

 string windowTitle = "Windows Security"; 

     // Wait 30 seconds max... 
     autoIt.WinWait(windowTitle, string.Empty, 30); 

     // Need to wait for input fields to load... 
     Thread.Sleep(2000); 

     autoIt.WinActivate(windowTitle); 
     autoIt.Send(username); 
     autoIt.Send(Keys.Tab.ToString()); 
     autoIt.Send(password); 
     autoIt.Send(Keys.Enter.ToString()); 
     autoIt.WinWaitClose(windowTitle, string.Empty, 10); 

有沒有人有任何想法我可以通過這個?

謝謝

回答

1

新對話是XAML。 AutoIt只能用於Win32應用程序。如果你想與那個對話進行交互,我會建議使用UI Automation。如果您仍然想使用AutoIt,則可以嘗試使用它將Windows消息直接發送到控件,但您需要使用其他工具來獲取控件的ID。此論壇建議發送Windows消息的AutoIt script,我建議使用Windows SDK附帶的Inspect.exe。 Inspect.exe是取代該論壇帖子中提到的UiSpy的工具。

在我的公司,當我們從VB6應用程序轉到WPF應用程序時,我們不得不從AutoIt切換到UI Automation。

相關問題