首页 > 解决方案 > 如何自动输入凭据到 javascript 弹出窗口?我试过“webdriver wait”但我得到“TimedOutException”

问题描述

编辑: 事实证明,“ javascript popup ”实际上并不是一个 javascript 弹出窗口。这是一个“基本授权弹出窗口”。我使用“ AutoIt ”解决了这个问题,但来自 SO 的 Alex 建议寻找基本授权弹出窗口。这是帖子

我正在尝试访问网页 A,但它重定向到网页 B,然后接收电子邮件 ID,然后重定向到网页 C,该网页具有用于输入电子邮件 ID(先前输入)和密码的 Javascript 弹出窗口,它将然后带我到所需的网页。

问题是,如果我使用“webdriver wait”,它甚至不会将我带到我需要输入电子邮件 ID 和密码的页面 C。如果我删除“webdriver wait”,我至少可以转到 C 页,但我仍然无法输入 ID 和密码!

driver.get("https://website.com");
driver.findElement(By.xpath("//*[@id=\"i0116\"]")).sendKeys("email@email.com");
driver.findElement(By.xpath("//*[@id=\"idSIButton9\"]")).click();
WebDriverWait wait = new WebDriverWait(driver, 5);              //if I remove this line and below line
Alert alert = wait.until(ExpectedConditions.alertIsPresent());  //then only I reach to the page C 
driver.switchTo().alert().sendKeys("email@email.com");
driver.switchTo().alert().sendKeys("passwordofemail");

当代码中有 webdriver 等待时,我在线程“main”org.openqa.selenium.TimeoutException 中收到此异常异常:预期条件失败:等待警报出现(尝试 10 秒,间隔 500 毫秒)。

标签: javascriptjavaselenium-webdriverselenium-chromedriver

解决方案


推荐阅读