我编写了以下代码来处理OTP的弹出窗口。
实际上它正在登陆网页并输入用户名和密码并点击登录按钮,然后显示OTP弹出窗口。它处理所有这些事情,但无法在弹出窗口中输入PIN码(我不确定我是否正确处理此弹出窗口)。这里没有框架。
页面源看起来像这个弹出窗口。你能帮我识别一下这个OTP弹出窗口并输入密码。我尝试了很多方法,比如通过xpath,cssselector等直接识别元素。
这是代码:
WebDriver driver = new FirefoxDriver();
driver.get("URL");
driver.manage().window().maximize();
driver.findElement(By.id("Email")).sendKeys("[email protected]");
driver.findElement(By.id("Password")).sendKeys("pass@123");
driver.findElement(By.id("btnSignIn")).click();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
WebElement wb= driver.findElement(By.xpath("/html/body/div[2]/div/div/div/section/form/div/div[2]/div/div/div"));
wb.sendKeys("1111");
弹出窗口:
页面来源:
根据HTML代码,它不是警报而不是框架内。您可以简单地使用id或任何定位器而不是您使用的绝对路径。
有时直接sendkeys不起作用。首先,我们需要在输入字段中单击一次,然后输入文本。
有些时候thread.sleep在输入文本之前也会帮助我。
这是简单的html表单。
我目前没有安装任何Java IDE,但是使用C#的简单示例。
IWebElement element = driver.FindElement(By.Id("OTP"));
element.Click();
element.SendKeys("Text");
从这里制作java模拟应该不成问题。