簡體   English   中英

使用 Java 中的 Selenium Webdriver 以不同用戶身份運行 IE

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM