硒中的模态弹出处理

问题描述 投票:0回答:2

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

弹出窗口:

popup

页面来源:

sources

selenium selenium-webdriver modalpopup
2个回答
0
投票

根据HTML代码,它不是警报而不是框架内。您可以简单地使用id或任何定位器而不是您使用的绝对路径。

有时直接sendkeys不起作用。首先,我们需要在输入字段中单击一次,然后输入文本。

有些时候thread.sleep在输入文本之前也会帮助我。


0
投票

这是简单的html表单。

我目前没有安装任何Java IDE,但是使用C#的简单示例。

        IWebElement element = driver.FindElement(By.Id("OTP"));
        element.Click();
        element.SendKeys("Text");

从这里制作java模拟应该不成问题。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.