我写了下面的代码来处理OTP的弹出窗口。
实际上,它正在登陆网页并输入用户名和密码,然后单击登录按钮,然后显示OTP弹出窗口。它正在处理所有这些事情,但是无法在弹出窗口中输入PIN(我不确定我是否正确处理了此弹出窗口)。没有任何框架。
页面源看起来像这样的弹出窗口。您能否帮助我识别此OTP弹出窗口并输入PIN码。我尝试了许多方法,例如通过xpath,cssselector等直接标识元素。
代码如下:
WebDriver driver = new FirefoxDriver();
driver.get("URL");
driver.manage().window().maximize();
driver.findElement(By.id("Email")).sendKeys("user@mail.com");
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");
弹出窗口:
页面来源:
答案 0 :(得分:0)
根据HTML代码,它不会发出警报并且不在框架内。您可以简单地使用id或任何定位符,而不是您使用的绝对路径。
有时直接的sendkey无效。首先,我们需要在输入字段中单击一次,然后输入文本。
有时候,thread.sleep在输入文本之前也对我有帮助。
答案 1 :(得分:0)
这是简单的html表单。
我目前没有安装任何Java IDE,但是使用C#的简单示例。
IWebElement element = driver.FindElement(By.Id("OTP"));
element.Click();
element.SendKeys("Text");
以此来将Java模拟为一个问题。