为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Java处理Selenium WebDriver中的弹出窗口

如何使用Java处理Selenium WebDriver中的弹出窗口

慕容3067478 2019-09-02 16:11:33
我想在rediff.com中处理登录部分,但以下代码不适用于此:driver.get("http://www.rediff.com/");WebElement sign = driver.findElement(By.xpath("//html/body/div[3]/div[3]/span[4]/span/a"));sign.click();String myWindowHandle = driver.getWindowHandle();driver.switchTo().window(myWindowHandle);WebElement email_id= driver.findElement(By.xpath("//*[@id='signin_info']/a[1]"));email_id.sendKeys("hi");如果myWindowHandle不是正确的字符串,那么让我知道如何获取弹出窗口名称,因为我找不到弹出窗口的名称。
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

要切换到弹出窗口,您需要使用getWindowHandles()并迭代它们。


在您使用的代码中getWindowHandle(),它将为您提供父窗口。


String parentWindowHandler = driver.getWindowHandle(); // Store your parent window

String subWindowHandler = null;


Set<String> handles = driver.getWindowHandles(); // get all window handles

Iterator<String> iterator = handles.iterator();

while (iterator.hasNext()){

    subWindowHandler = iterator.next();

}

driver.switchTo().window(subWindowHandler); // switch to popup window


// Now you are in the popup window, perform necessary actions here


driver.switchTo().window(parentWindowHandler);  // switch back to parent window


查看完整回答
反对 回复 2019-09-02
?
跃然一笑

TA贡献1826条经验 获得超6个赞

当您收到任何Web浏览器弹出警告消息框时,您可以在代码中使用以下代码。


// Accepts (Click on OK) Chrome Alert Browser for RESET button.


Alert alertOK = driver.switchTo().alert();

alertOK.accept();




//Rejects (Click on Cancel) Chrome Browser Alert for RESET button.


Alert alertCancel = driver.switchTo().alert();

alertCancel.dismiss();


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 1529 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号