0

我正在自動執行aws.amazon.com上的測試,以檢查我使用aws cli創建的資源是否已成功創建或者是否使用selenium webdriver。由於該網站脫離了我的公司網絡,爲了訪問該網站,我需要提供域名用戶/密碼的模式彈出窗口,該窗口在點擊該網站的URL之前。通過硒設置chrome和ie8的配置文件/功能

我不確定,但解決此問題的方法是通過代碼在瀏覽器設置中設置配置文件/功能。在點擊網址之前。 我已經實現了在Firefox如下

FirefoxProfile profile = new FirefoxProfile(); 
       profile.addExtension(new File(Constants.FIREFOX_ADDON_PATH)); 
       profile.setPreference("extensions.enabledAddons", "FireXPath%40pierre.tholence.com:0.9.7.1,proxyauth%40lammersoft.com:0.1.2,%7B972ce4c6-7e08-4474-a285-3208198ce6fd%7D:37.0.1"); 
       profile.setPreference("extensions.proxyauth.authtoken","c3ViaGFtdDpub3YwNDIwMTQ="); 

如何做同樣的在Chrome和IE8?

我通過了this,但無法理解任何東西。.xpi.crx文件與所有這些有什麼關係?

這是鉻彈出圖像

這是彈出圖像IE8

This is pop up image for IE8

+0

號@LittlePanda,硒會登錄我。 –

+0

沒有我完整的代碼:打家庭網址 - >登錄到aws控制檯通過給用戶/傳遞 - >點擊一個對象 - > nasvigate到其他頁面 - >拍快照 - >關閉瀏覽器。所有這一切都發生在所有瀏覽器上。 –

+0

問題在哪裏? – LittlePanda

回答

0

彈出是Windows HTTP驗證彈出窗口並不能使用Selenium Webdriver進行處理。您將不得不使用機器人類 AutoIT來處理它。

1.使用機器人類:

Alert authenticationWindow = driver.switchTo().alert(); 
// Type the username/email. 
authenticationWindow.sendKeys("<username/email address>"); 
// Shift cursor focus to password input text field. 
Robot robot = new Robot(); 
robot.keyPress(KeyEvent.VK_TAB); 
// Type the password in password field. [ Selenium does not know at this point that the cursor focus is shifted, so calling Alert class instance sendKeys() will cause password to be typed in username field. So, we are copying the password first to windows clipboard and then pasting it directly into the password field using Robot class instance ] 
StringSelection stringSelection = new StringSelection("<user password>"); 
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection,null); robot.keyPress(KeyEvent.VK_CONTROL); 
robot.keyPress(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_CONTROL); 

// Accept the authentication window. 
robot.keyPress(KeyEvent.VK_ENTER); 

2.使用的AutoIt:

此鏈接提供了有關如何使用了AutoIt非常久遠硒良好的信息:http://www.toolsqa.com/selenium-webdriver/autoit-selenium-webdriver/

這裏你必須做什麼:

D ownload /安裝的AutoIt
您將能夠使用的AutoIt賽特編輯 編譯.au3腳本會給你一個.exe文件 然後你就可以使用調用您的硒腳本.exe文件創建.au3腳本

Runtime.getRuntime().exec("D:\AutoIt\AutoItTest.exe"); 

你可以使用的AutoIt窗口信息(86)或(64)一個窗口的屬性。例如,窗口的標題/狀態欄。

AutoIT也有Au3記錄器,以便您可以記錄與遠程桌面相關的操作。

下面是自動進行HTTP認證的示例腳本:

WinWaitActive("Web page title","","10") 
If WinExists("Web page title") Then 
Send("userid{TAB}") 
Send("password{Enter}") 
EndIf 

3.使用AutoITx4Java:

檢查這個庫AutoITx4Java - https://code.google.com/p/autoitx4java/

  1. 下載雅各布的AutoIt(參考上面的鏈接)
  2. 添加jacob.jar和aut oitx4java.jar添加到你的庫路徑。
  3. 將jacob-1.15-M4-x64.dll文件放入庫路徑中。

示例代碼

File file = new File("lib", "jacob-1.15-M4-x64.dll"); //path to the jacob dll 
System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath()); 

AutoItX x = new AutoItX(); 
String notepad = "Untitled - Notepad"; 
String testString = "this is a test."; 
x.run("notepad.exe"); 
x.winActivate(notepad); 
x.winWaitActive(notepad); 
x.send(testString); 
Assert.assertTrue(x.winExists(notepad, testString)); 
x.winClose(notepad, testString); 
x.winWaitActive("Notepad"); 
x.send("{ALT}n"); 
Assert.assertFalse(x.winExists(notepad, testString)); 
相關問題