[英]How to select a value from a lookup field using selenium webdriver
[英]Fetching a value from the database and using that value as an input field in Selenium Webdriver
我在工作中正在執行自動化測試,並且陷入了一個場景。
我的第一個測試包括創建一個新的用戶帳戶,該帳戶創建一個用戶名和一個密碼。 PS我的密碼總是一樣的
我的第二個測試基本上是使用我在第一個測試中創建的用戶名和密碼作為用戶登錄。
另外,隨着帳戶的創建,數據庫得到更新,並且我能夠連接到數據庫並執行查詢(從創建密碼為“ pass123”的帳戶中選擇“ user_name”,並按created_dttm desc順序進行);
因此,由於我能夠執行並從數據庫獲取值,因此我該如何獲取該值並將其插入到我的用戶名字段中,以便以客戶身份登錄。
因為我處於這種情況下,所以我總是必須用在我的第一個tc中創建的不同用戶名來編輯第二個測試用例。 我希望我的測試腳本從數據庫中獲取用戶名,並將其自動插入用戶名字段。
我對Java和自動化有點陌生,因此,將非常感謝您提供任何幫助。 萬分感謝!
您只需要將從數據庫讀取的用戶名值傳遞給Webdriver的sendKeys函數。 例如,如果您已將來自數據庫的用戶名值存儲在字符串變量user中 ,並且您正在使用id屬性識別用戶名字段,則可以使用以下命令在用戶名字段中輸入該值:
driver.findElement(By.id("u")).sendKeys(user);
在上面的代碼中, u是用戶名字段的ID 。 您可以將數據庫訪問代碼移動到單獨的方法,如下所示:
public static String getUsernameFromDB() throws ClassNotFoundException, SQLException {
//Accessing driver from the JAR file
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("Oracle JDBC driver loaded ok.");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@151.120.92.150:1602:pppst1","ppp_app","ppp_app_pppst1");
System.out.println("DB Connected Successfuly");
Statement stmt = con.createStatement();
ResultSet result = stmt.executeQuery("select user_name from accounts where password = 'pass123' order by created_dttm desc;");
String account = null;
while(result.next()){
account = result.getString("USER_NAME");
System.out.println("BAID: " + account);
}
con.close();
return account;
}
您的測試用例代碼將變為:
String username = getUsernameFromDB();
driver.findElement(By.id("u")).sendKeys(username);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.