[英]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;
}
你不能在這個單一的方法中做你想做的一切(嘗試這樣做是一種不好的做法)。 每個方法應該只做一件事,例如登錄。 它保持高閱讀理解和低維護。
雖然在單個腳本和瀏覽器中進行所有這些登錄嘗試似乎“更好”/更快,但實際上也是一種不好的做法。 最好的辦法是編寫一個登錄腳本,然后將登錄憑據集傳遞給它並並行運行它。
示例登錄腳本是
鑒於您正在使用的框架,您還需要研究數據驅動測試。 根據語法,它可能是您傳遞給此測試的屬性等。 現在你有了一個單一的登錄測試和一組傳入的憑據,你可以並行運行所有測試,這最終將使你的測試運行速度比使用單個實例快得多,而且你遇到的問題也會少得多,例如,如果您使用單個瀏覽器,想象一下運行 10 次登錄,第三次登錄失敗。 您必須重新運行所有測試。 在我描述的並行情況下,您會收到憑證 #3 的失敗消息,但 rest 會通過。 然后您可以調查第 3 組等,而不必重新運行所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.