如何在SeleniumWebDriverJava中从数据库获取otp

mbskvtky  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(341)

我们可以使用selenium webdriver自动化otp吗?有没有什么代码逻辑的例子来尝试我们如何从数据库获取移动接收到的otp,以便进入网站。感谢任何线索。谢谢

bgibtngc

bgibtngc1#

selenium与数据库无关。你需要另一种技术。为此,请使用jdbc。看到了吗https://www.tutorialspoint.com/jdbc/index.htm.
maven依赖关系:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
    <version>8.4.1.jre8</version>
</dependency>

或者将jdbcjar添加到项目中。
假设db位于具有windows身份验证的sql server express上,db名称为“mydatabase”,而具有otps的名为“otp”的表如下所示:

使用jdbc:

package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class OtpManager {

    public static Connection connectSqlDb(String dbName) throws SQLException {
        String serverName = "PC NAME\\SQLEXPRESS";
        return DriverManager.getConnection("jdbc:sqlserver://" + serverName + ";databaseName=" + dbName + ";integratedSecurity=true");
    }

    public static String getLastOptForUser(String userName) throws SQLException {
        String otp = null;
        Connection connection = connectSqlDb("MyDatabase");
        Statement statement = connection.createStatement();
        String query = "select top (1) otp from [MyDatabase].[dbo].[OTP] where username = '" + userName + "' order by created desc";
        ResultSet result = statement.executeQuery(query);
        while(result.next()) {
            otp = result.getString("otp");
        }
        return otp;
    }

    public static void main(String[] args) throws SQLException {
        String userName = "user1";
        String lastOtp = getLastOptForUser(userName);
        System.out.println(lastOtp);
    }

}

输出:

2222

在 selenium 测试中,您可以使用otp值: element.sendKeys(String string);

相关问题