首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用selenium webdriver c#将焦点切换到浏览器弹出窗口

如何使用selenium webdriver c#将焦点切换到浏览器弹出窗口
EN

Stack Overflow用户
提问于 2016-04-05 15:01:52
回答 2查看 4K关注 0票数 0

我需要接受一个网页浏览器弹出窗口来刷新网站。我使用了以下脚本来刷新网站-

代码语言:javascript
复制
driver.FindElement(By.Id("all_bt")).SendKeys(Keys.F5);  

在那之后,我使用下面的代码来接受web浏览器弹出窗口。

代码语言:javascript
复制
IAlert alert = driver.SwitchTo().Alert();
                    Thread.Sleep(3000);
                    alert.Accept();

但我收到错误,因为找不到警报。我相信焦点不在弹出窗口上,这可能是原因。有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2016-04-05 16:35:08

如果需要刷新页面,可以尝试使用F5代替sendkey,如下所示

代码语言:javascript
复制
 driver.navigate().refresh();

重新分级弹出窗口,能够检查该弹出窗口中的元素吗?如果您能够检查弹出,那么它将是正常的页面,而不是警报。

交叉检查使用的定位器,尝试使用所需的等待出现ok按钮,以及该按钮是否在任何框架内(iframe)。如果它在框架内,则在单击之前切换框架。在框架中的工作完成后,然后切换回默认内容。

代码语言:javascript
复制
    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

票数 0
EN

Stack Overflow用户

发布于 2016-04-05 18:01:32

尝试直接点击确定..如果仍然不工作,则检查是否存在任何帧。除了浏览器弹出窗口之外,它还必须是一个应用程序弹出窗口。在这种情况下,切换到警报将不起作用

希望它能帮助您:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36419309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档