【问题标题】:How to continue automation after entering OTP manually using Selenium and Java如何在使用 Selenium 和 Java 手动输入 OTP 后继续自动化
【发布时间】:2022-08-20 22:19:03
【问题描述】:

使用 selenium webdriver 我正在使用 eclipse、maven、testng 测试登录页面和更多选项卡,但在登录页面中有 OTP 验证。所以我手动输入了OTP。如何以自动化方式继续下一个过程?

    标签: java eclipse selenium selenium-webdriver user-input


    【解决方案1】:

    要在使用 Selenium 手动输入 OTP 后继续自动化,将使用 Scanner 类,如下所示:

    driver.findElement(By.xpath("xpath_mobile_field")).sendKeys("9818414799");
    scanner_user = new Scanner(System.in);
    System.out.println("Enter the OTP: ");
    String user = scanner_user.nextLine();
    driver.findElement(By.xpath("xpath_otp_field")).sendKeys(user);
    

    参考

    您可以在以下位置找到一些相关的详细讨论:

    【讨论】:

      【解决方案2】:

      您不需要手动输入,您可以使用某人的 otp 生成器库,例如 python 中的 pyotp。

      import pyotp
      totp = pyotp.TOTP('HASHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
      ida2f = totp.now()
      

      对于java,你有吗 https://github.com/BastiaanJansen/otp-java

      要解决 OTP,通常需要先选择“iframe”,例如在 python 中。

                                  try:
                                      iframe = driver.find_element(By.XPATH, '//*[@id="xxxxxOTP"]')
                                      driver.switch_to.frame(iframe)
      
                                      iKeys = 0
                                      for strs in ida2f:
                                          iKeys = iKeys + 1
                                          driver.find_element(By.XPATH, f'//*[@id="xxxx-html"]/body/div[2]/div[1]/div/div/div/fieldset/div/input[{iKeys}]').click()
                                          time.sleep(0.1)
                                          driver.find_element(By.XPATH, f'//*[@id="xxxx-html"]/body/div[2]/div[1]/div/div/div/fieldset/div/input[{iKeys}]').send_keys(strs)
                                          time.sleep(0.1)
      
                                      driver.switch_to.default_content()
                                      time.sleep(3)
                                  except:
                                      continue
      

      为了可靠,我喜欢一键发送。

      【讨论】:

      • OP想要的是解决OTP,你建议有一个OTP系统库。
      猜你喜欢
      • 1970-01-01
      • 2020-11-17
      • 2017-07-26
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      • 2017-12-19
      • 2020-11-05
      • 1970-01-01
      相关资源
      最近更新 更多