gpt4 book ai didi

c# - WatiN 和 IE9 关于多个对话框的问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:45 25 4
gpt4 key购买 nike

我使用的是 2011 年 4 月 12 日最新版本的 WatiN (2.1.0.1196)。

我有一个 aspx 页面加载到 Dynamics Crm 的 IFrame 中。打开的页面上有一个按钮和模式对话框形式。到目前为止,除特定用异常(exception),大多数测试用例都可以与 WatiN 一起正常工作。

如果在模态对话框上设置了特定的控件组合,用户按下提交按钮后会弹出一个确认对话框。如果用户选择确定,它将继续执行提交,如果取消,它将返回到模态对话框。出现此确认对话框时测试超时。我似乎无法正确设置处理程序来捕捉确认对话框。

这是我一直在尝试的一种测试方法:

    [TestMethod]
public void Add_New_Post_To_Record_Public_NotOnBehalf_NoSub_No_Notifications()
{
using (var browser = new IE("URL to the IFRAME"))
{
var approveConfirmDialog = ReturnDialogHandler.CreateInstance();
var confirmCode = Guid.NewGuid();

//logon to CRM
logonToADFS(browser);

var recordPage = browser.Page<DiscussionRecordpage>();
recordPage.CreateNewPostButton.ClickNoWait();

HtmlDialog dialog = browser.HtmlDialog(Find.ByTitle("New Post"));
var messageText = dialog.TextField(Find.ByClass("required"));
messageText.TypeText("Type some text. Confirmation code: " + confirmCode.ToString());

var button = dialog.Button(Find.ByClass("submit-button"));

using (new UseDialogOnce(browser.DialogWatcher, approveConfirmDialog))
{
button.ClickNoWait();
approveConfirmDialog.WaitUntilExists();
approveConfirmDialog.OKButton.Click();
}
browser.WaitForComplete();

Assert.IsTrue(browser.ContainsText(confirmCode.ToString()));
}
}

我尝试了几种不同的变体,但结果都一样。我假设我需要使用 ReturnDialogHanlder.CreateInstance() 方法来实现 IE9 兼容性,但标准的 ConfirmDialogHandler 似乎也不起作用。老实说,我不知道在这种情况下我是否正确使用了对话框处理程序,但我可以单击从其他页面上的按钮生成的其他确认对话框上的确定按钮。这有点独特,因为它是从模态对话框而不是页面生成的。

我也尝试使用此自定义处理程序 ( C# WatiN - Add an AlertDialogHandler to click ok button on every Alert dialog window),但没有结果。

提前致谢。

最佳答案

太难了。我建议一个解决方法:在大多数情况下,您可以使用键盘关闭对话框。这样你就可以 sendkeys关闭对话框。仅供引用。

关于c# - WatiN 和 IE9 关于多个对话框的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6346434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com