簡體   English   中英

如何循環登錄和密碼驗證過程?

[英]How do I loop the login and password verification process?

我是這個行業的新手。 有這樣一種情況,需要測試輸入正確用戶名和密碼的過程。 我使用 selenium 網絡驅動程序。 但是沒有循環的創作過程是非常漫長和乏味的。 例如,這里。

let element0 = driver.findElement(By.id("login"));   
  element0.click();   
  element0.sendKeys("admin");
  await driver.sleep(1500);
  element0.clear();

我需要循環,以便從登錄名和密碼數組中獲取第一個元素 - 插入登錄名和密碼字段,檢查和刪除等。

我嘗試使用 for 循環,但輸出了數組的所有元素。

async function fillLoginPassBox() {
  let element0 = driver.findElement(By.id("login"));
  let element1 = driver.findElement(By.xpath('//*[@id="password"]'));
  let logins = ['test0', 'test1', 'admin'];
  let passwords = ['test0', 'test1', 'admin'];      

    for(let key in logins) {
      element0.sendKeys(logins[key]);
      element0.click();
      element0.clear();
      console.log(logins[key]);
    }
   // element0.click();
   // element0.sendKeys("admin");  
      await driver.sleep(1500);                                         
      element1.click();
      element1.sendKeys("admin");
      await driver.sleep(1500);
      return element1, element0;
}

你不能在這個單一的方法中做你想做的一切(嘗試這樣做是一種不好的做法)。 每個方法應該只做一件事,例如登錄。 它保持高閱讀理解和低維護。

雖然在單個腳本和瀏覽器中進行所有這些登錄嘗試似乎“更好”/更快,但實際上也是一種不好的做法。 最好的辦法是編寫一個登錄腳本,然后將登錄憑據集傳遞給它並並行運行它。

示例登錄腳本是

  1. 創建瀏覽器實例
  2. 導航到登錄頁面
  3. 使用當前的憑據集登錄
  4. 驗證您是否已成功登錄
  5. 登出
  6. 驗證您是否已成功注銷
  7. 退出瀏覽器實例

鑒於您正在使用的框架,您還需要研究數據驅動測試。 根據語法,它可能是您傳遞給此測試的屬性等。 現在你有了一個單一的登錄測試和一組傳入的憑據,你可以並行運行所有測試,這最終將使你的測試運行速度比使用單個實例快得多,而且你遇到的問題也會少得多,例如,如果您使用單個瀏覽器,想象一下運行 10 次登錄,第三次登錄失敗。 您必須重新運行所有測試。 在我描述的並行情況下,您會收到憑證 #3 的失敗消息,但 rest 會通過。 然后您可以調查第 3 組等,而不必重新運行所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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