硒中的模式弹出处理

时间:2018-09-03 10:24:17

标签: selenium selenium-webdriver modalpopup

我写了下面的代码来处理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");

弹出窗口:

popup

页面来源:

sources

2 个答案:

答案 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模拟为一个问题。