首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C#和Selenium处理简单的警报?

如何使用C#和Selenium处理简单的警报?
EN

Stack Overflow用户
提问于 2019-11-28 08:26:23
回答 1查看 147关注 0票数 0

这是我的代码,当它到达Switchto().Alert()时,有一个错误说‘没有这样的警报’。

代码语言:javascript
复制
            driver.FindElement(By.XPath("(.//*[normalize-space(text()) and normalize-space(.)='Add Document'])[1]/following::button[1]")).Click();

            **driver.SwitchTo().Alert().Accept();**

            var signFrame = driver.FindElement(By.Id("hsEmbeddedFrame"));
            driver.SwitchTo().Frame(signFrame);


            driver.FindElement(By.XPath("(.//*[normalize-space(text()) and normalize-space(.)='Istrong textnitials'])[1]/preceding::li[1]")).Click();strong text
EN

回答 1

Stack Overflow用户

发布于 2019-11-28 08:36:40

您可能需要等待警报存在,然后才能单击它:

代码语言:javascript
复制
using OpenQA.Selenium.Support.UI;


WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(15));

// alert is present will automatically switch to the alert
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.AlertIsPresent());

// the below line is no longer necessary
// driver.SwitchTo().Alert().Accept();

如果仍然抛出NoSuchAlertException,那么出现的弹出窗口可能不是真正的警报,而可能是一个HTML模式--在这种情况下,您可以检查它并使用Selenium找到合适的选择器来接受它。

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

https://stackoverflow.com/questions/59080192

复制
相关文章

相似问题

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