我需要接受一个网页浏览器弹出窗口来刷新网站。我使用了以下脚本来刷新网站-
driver.FindElement(By.Id("all_bt")).SendKeys(Keys.F5); 在那之后,我使用下面的代码来接受web浏览器弹出窗口。
IAlert alert = driver.SwitchTo().Alert();
Thread.Sleep(3000);
alert.Accept();但我收到错误,因为找不到警报。我相信焦点不在弹出窗口上,这可能是原因。有人能帮我解决这个问题吗?
发布于 2016-04-05 16:35:08
如果需要刷新页面,可以尝试使用F5代替sendkey,如下所示
driver.navigate().refresh();重新分级弹出窗口,能够检查该弹出窗口中的元素吗?如果您能够检查弹出,那么它将是正常的页面,而不是警报。
交叉检查使用的定位器,尝试使用所需的等待出现ok按钮,以及该按钮是否在任何框架内(iframe)。如果它在框架内,则在单击之前切换框架。在框架中的工作完成后,然后切换回默认内容。
driver.switchTo().frame("provide frame name or location"); //switch to frame command
driver.switchTo().defaultContent(); //switch to default content command
//below is wait command
WebDriverWait wait=new WebDriverWait(driver, 120);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("id of ok")));谢谢你,Murali G
发布于 2016-04-05 18:01:32
尝试直接点击确定..如果仍然不工作,则检查是否存在任何帧。除了浏览器弹出窗口之外,它还必须是一个应用程序弹出窗口。在这种情况下,切换到警报将不起作用
希望它能帮助您:)
https://stackoverflow.com/questions/36419309
复制相似问题