2013-08-02 26 views
3

有誰知道我如何讓selenium運行使用JAVA的「以不同的用戶運行」功能的IE會話?我不知道我怎麼去設置這個,谷歌沒有提出任何東西,所以也許我在某處尋找錯誤的東西?以Java中的Selenium Webdriver作爲不同的用戶運行IE

爲了擴大我爲什麼要做這一點,該網站我的測試是一個內部平臺,並使用用戶登錄證書/ Windows帳戶的詳細信息,以確定自己的角色,有什麼聯繫他們,他們可以查看數據

目前,我可以作爲特定用戶(管理員,數據管理員等)運行測試的唯一方法是在運行測試之前以該用戶的身份登錄到計算機。當我有多個用戶帳戶來測試並運行帶有GRID2的Webdriver時(這樣我就有一排機器在隊列中提取隊列中的測試時),這是不可能的。

當手動運行測試時,我可以簡單地右鍵單擊並在ie快捷方式上選擇「以不同用戶身份運行」選項,這樣計算出我是否可以通過webdriver找到複製此方法的方法,這將解決我的問題。

感謝您的任何建議或協助。

回答

-1

我不知道你爲什麼想這樣做,我不相信這是可能的。不過,我已經爲您的最終目標做了一些猜測,併爲每個解決方案提供瞭解決方案。

如果你想開始新鮮(沒有緩存或任何東西),那麼只需啓動一個新的IEDriver實例。

如果要使用不同的設置啓動它,你可以在你desired capabilities.

如果通過有完全是另一回事,你正在嘗試做的,隨時回覆,並解釋你的情況。

+0

已更新我的最初問題多一點背景,道歉我留下了一點缺乏。 – MorkPork

+0

我看到了您的擴展解釋,我相信您唯一的解決方案就是使用Java機器人來自動化。我不相信有任何方法可以用純硒來做這樣的事情。 –

+0

Java機器人?你是什​​麼意思?而且,我可以讓一個人給我咖啡嗎?! @:D – MorkPork

0

也許你也可以在不同用戶的GRID中設置機器,並在環境能力中反映出這一點。 當然,它確實需要更多的機器在你的網格中。雖然我沒有嘗試過這個。

+0

感謝您的建議夥伴,我確實考慮過這樣做,但不幸的是,我已經在使用我的環境功能達到其預期目的(令人惱火的是,我們的系統設置爲訪問網站的開發版本,您必須在機器在開發域中,並轉到URL相關的URL,並且對於所有的envs,test,uat,preprod等垃圾都是一樣的!) – MorkPork

0

我得到的唯一解決方案是使用機器人類來打開新的會話。 實際上IE並沒有提供任何打開新會話的快捷方式,所以我們必須通過機器人來做到這一點。

此代碼將爲您打開一個新的會話。好運

System.setProperty("webdriver.ie.driver","./IEDriverServer.exe"); 
    WebDriver driver = new InternetExplorerDriver(); 
    driver.get("http://www.google.com/"); 

    try{ 
     Robot robot=new Robot(); 
     robot.keyPress(KeyEvent.VK_ALT); 
     Thread.sleep(3000); 
     robot.keyPress(KeyEvent.VK_F); 
     robot.keyRelease(KeyEvent.VK_ALT); 
     robot.keyRelease(KeyEvent.VK_F); 
     robot.keyPress(KeyEvent.VK_I); 
     robot.keyRelease(KeyEvent.VK_I); 

    } 
    catch(Exception ex){ 
     System.out.println(ex.getMessage()); 
    } 
0

如果程度較重,你可以只安裝你不同的用戶名和密碼文件,在閱讀,確定你通過一個工廠類需要的用戶,然後選擇每個測試用戶根據您需要查看的參數。如果你這樣做,當你在多線程上運行時,它仍然會吸引正確的用戶登錄。

我不認爲這是您的主要目標,但至少是一個二級解決方案。

相關問題