![](/img/trans.png)
[英]How to use different version of IE (IE6, 7, 8, 9 and 10) in Selenium WebDriver with Java
[英]Running IE as a different user with Selenium Webdriver in Java
有誰知道我如何使用 JAVA 使用“以不同用戶身份運行”功能讓 selenium 運行 IE 會話? 我不知道我什至會如何設置這個,而谷歌沒有提出任何東西,所以也許我在某處尋找錯誤的東西?
為了進一步說明為什么我需要這樣做,我正在測試的網站是一個內部平台,並使用用戶登錄憑據/Windows 帳戶詳細信息來確定他們的角色、他們擁有的鏈接、他們可以查看的數據等。
目前,我可以以特定用戶(經理、數據管理員等)身份運行測試的唯一方法是在運行測試之前以該用戶身份登錄機器。 當我有多個用戶帳戶要測試並且正在使用 GRID2 運行 Webdriver 時,這實際上是不可能的(所以我有一組機器在測試出現時從隊列中提取測試)。
手動運行測試時,我只需右鍵單擊並選擇 ie 快捷方式上的“以不同用戶身份運行”選項,因此我想如果我能找到一種方法來在通過 webdriver 運行時復制它,這將解決我的問題。
感謝您的任何建議或幫助。
也許您還可以在您的 GRID 中為不同的用戶設置機器,並在環境能力中反映這一點。 當然,它確實需要您的 GRID 中的更多機器。 不過我自己沒試過。
我得到的唯一解決方案是使用機器人類打開新會話。 實際上 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());
}
如果更糟,您可以使用不同的用戶名和密碼設置一個文件,讀取它們,通過工廠類確定您需要的用戶,然后根據您需要查看的參數選擇每次測試的用戶。 如果你這樣做,當你在多線程上運行時,它仍然會拉入正確的用戶登錄。
我不認為這是你的主要目標,但至少是次要解決方案。
我很可能已經做到了。 簡單的方法 如果您通過 eclipse 運行 selenium。 只需通過右鍵單擊以不同用戶身份打開即可打開 Eclipse IDE。
更難的方法是創建一個 Java>Runnable JAR 文件,如下文所述。
https://www.joecolantonio.com/selenium-executable-java-test/
您應該是本地計算機上的管理員才能執行此操作,並且應該具有 user:userA user:userA1 等的 Windows 帳戶 iusername 和密碼。 打開多個命令提示符
C:\>runas /user:domainname\userA cmd
C:\>runas /user:domainname\userA1 cmd
C:\>runas /user:domainname\userA2 cmd
要么
C:\>runas /user:domainname\username cmd
輸入管理員密碼:嘗試以用戶“techblogger-pc\\administrator”的身份啟動 cmd ...然后在命令窗口中鍵入相同的 jar 文件 像 c:\\runnableselenium.jar 和炸彈一樣,您讓所有 jar 都使用不同的憑據運行 找到一種方法以某種方式在測試頁面上查看登錄的用戶名。
我不知道你為什么要這樣做,我不相信這是可能的。 但是,我對您的最終目標做了一些猜測,並為每個目標提供了解決方案。
如果你想重新開始(沒有緩存或任何東西),那么只需啟動一個新的 IEDriver 實例。
如果你想用不同的設置啟動它,你可以傳入你想要的功能。
如果您完全有其他事情要做,請隨時回復並解釋您的情況。
看起來可以使用Windows Credential Manager來做到這一點。 我能夠手動設置站點的用戶名和密碼,然后使用 Selenium 驅動到那里,並且我指定的備用憑據用於進行身份驗證。
下一步是在運行時設置憑證,這應該可以通過powershell 實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.