问题标签 [watin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1481 浏览

nunit - 使用 ReSharper 测试运行程序运行 WatiN 测试

我开始使用 WatiN 来测试我的 Web 界面。我遇到的问题如下:当我从 TestDriven.net 中开始测试时,我没有问题。如果我使用 ReSharper 测试运行程序,我会得到这个可预测的 AppartmentState 异常。

我尝试使用此处描述的不同选项:http ://watin.sourceforge.net/apartmentstateinfo.html#testdriven 。没有什么帮助。

有什么建议么?

0 投票
4 回答
1652 浏览

visual-studio - 添加对受源代码管理的产品的 Visual Studio 引用

例如,我试图在 Visual Studio 2008 中添加对WatiN的引用。我下载了 WatiN,我的桌面上有一个文件夹,其中包含 5 个文件:

  • WatiN.Core.dll
  • WatiN.Core.xml
  • 互操作.SHDocVw.dll
  • 微软.mshtml.dll
  • WatiN.Core.UnitTests.dll
  • WatiN.Core.UnitTests.dll.config

我可以添加对 WatiN.Core.dll 的引用并开始在 Visual Studio 中编码。但我有一些问题:

  • 我现在可以删除桌面上的文件夹吗?文件是否被复制到项目 bin 中?
  • 当我将我的项目签入源代码并且另一个开发人员签出时会发生什么?他/她是否必须在他们的桌面上有相同的文件夹。

我的想法是在项目中创建一个lib文件夹并引用lib文件夹中的文件。该文件夹将被添加到源代码管理中,以便下一个开发人员一切正常。但我对此解决方案有一些疑问:

  • 我需要所有 6 个文件吗?
  • 我相信 .config 文件与智能感知有关,但项目将在没有它们的情况下构建和运行,对吗?
  • 除了 WatiN.Core.dll 之外,我如何知道要包含哪些文件。该项目仅使用 WatiN.Core.dll 和 Interop.SHDocVw.dll 构建和运行。我怎么知道依赖关系是什么?

非常感谢任何见解。

0 投票
2 回答
1028 浏览

asp.net - 在 WatiN 单元测试中处理 ASP.NET Forms 身份验证

正在测试的 .NET 应用程序使用 <authentication mode="Forms"> 因此每当创建 WatiN.Core.IE 实例时,都会出现登录页面。

可以成功填写登录表单并进行身份验证,但想知道如何处理多个测试?IE实例一发布,下一次测试必须重新登录。

WatiN 有处理这个问题的机制吗?

关于如何处理登录以测试这些受密码保护的页面的任何建议?

0 投票
1 回答
1854 浏览

c# - Internet Explorer - 带有 WatiN 库的 Flash 自动化?

有谁知道使用 WatiN 编写 Flash 对象脚本的方法?

我需要一种将任意击键发送到 Flash 应用程序的方法。我可以使用如下代码登录:

我正在寻找类似的东西:

或者如果焦点设置在浏览器上,flash 会响应,所以自由文本可以工作:

目前我正在使用带有 SendKeys() 的 Windows 窗体应用程序,它不是很健壮。

谢谢。

0 投票
1 回答
2869 浏览

authentication - Watin Windows 身份验证

我正在尝试为使用集成身份验证的 Intranet 应用程序编写 Watin 测试。我尝试测试的网页打印 Page.User.Identity.Name。

以下是我测试中的一些代码:

当我运行它时,它会将我试图模拟的用户名打印到控制台,但网页显示的是我当前登录的用户,而不是我应该模拟的用户。

在以下位置发现了类似问题:
Automated testing of authorization scenario implemented with AzMan

0 投票
3 回答
2623 浏览

performance - 提高 Watin 的性能和速度

我们正在使用 Watin 进行验收测试,我们发现一旦我们拥有超过 100K 的 HTML 源代码的网页,它就会变得非常缓慢。

我感觉一些速度问题来自对 HTML 表的迭代。我们的一些表格有 50 - 60 行,每行有 5 - 10 列,这使得 Watin 在页面上搜索项目时非常慢。

是否有人对(例如)要使用的元素搜索方法的最佳重载有具体建议?是否有特定的方法可以避免,因为它们真的很慢?

0 投票
3 回答
2248 浏览

asp.net-mvc - 等待:打印对话框

我有一个屏幕,在加载时会弹出一个使用 javascript 的打印对话框。

我刚刚开始使用 WatiN 来测试我的应用程序。此屏幕是测试的最后一步。

发生的情况是有时 WatiN 在对话框出现之前关闭 IE,有时它不会,并且窗口会挂起。我在测试 TearDown 中有 ie.Close() 但如果显示打印对话框,它仍然保持打开状态。

我试图避免的是拥有孤立的 IE 窗口。我希望它一直关闭。

我查找了 DialogHandlers 并写了这个:

并将其放置在单击链接到页面的按钮之前,但没有任何改变。

我看到的示例中的代码可以执行以下操作:

但是 PrintDialogHandler 没有太多成员。

我最初并没有尝试测试这个对话框是否出现(只是页面加载并检查页面上的一些值),但我想等待和测试打印对话框的存在会更完整。

0 投票
2 回答
883 浏览

asp.net-mvc - ASP.NET MVC - 模型绑定的测试页面

我有涵盖我的模型绑定器的单元测试。我创建一个 ModelBindingContext 并用我的测试值填充 ValueProviderDictionary。我有信心,一旦我的控制器获得模型,一切都被测试覆盖,正确的事情正在发生。我也有信心,如果 BindingContext 正确,我的模型将正确绑定。我没有信心的是,我的视图在回发时会正确填充 BindingContext。

我已经开始编写WatiN 测试来填写表格,将它们发回,然后检查生成的视图。这没关系,但似乎非常……间接。例如,点击提交后显示“您的订单已保存”的页面——我必须访问数据库以查看它是否已正确保存。我已经有测试,当传递给我的控制器的模型是 x 时,y 被保存到数据库中。为什么我在视图测试中重复此代码?

我真正想要的是填充视图,点击提交,然后检查 (a) BindingContext 或 (b) 从 ModelBinder 返回的模型。

有没有关于如何做这些事情的做法?


只是想补充一点,这将是 WatiN 测试的补充。我现在有大约 50 个 WatiN 测试(还有很多要添加),如果我可以在没有 WatiN 的情况下执行上述操作,它只会删除少数测试。我会继续使用 WatiN 来做它的好处,但我觉得我现在正在滥用它来进行那些少数测试。

0 投票
2 回答
3544 浏览

watin - 从 CruiseControl 运行时,WATIN 测试失败并出现 TimeoutException

我们有一组 WATIN 测试,我们使用 CruiseControl 每小时运行一次。所有测试都在我们的本地机器上通过 - 但是当它们使用 CruiseControl 运行时,我们会遇到零星的失败。

我们使用命令行使用 CruiseControl。我们没有使用 CruiseControl 服务。我们使用的是 IE8。

在运行每个测试之前 - 我们使用 WATIN 关闭浏览器的所有实例,以确保每个测试完全隔离。

这是我们在抛出异常时看到的堆栈跟踪的示例:

我们有什么措施可以防止这种情况发生吗?我尝试将 Thread.Sleep() 放在违规行的前面。这似乎没有效果。我一直非常小心地避免使用 Thread.Sleep()- 并使用 browser.WaitUntilContainsText。

我搜索了 StackOverflow 和 WATIN 用户电子邮件列表 - 似乎其他人也有类似的问题,但我没有看到任何解决方案。

0 投票
1 回答
439 浏览

.net - 等待 LogonDialogHandler 和 Windows 2000

我无法使用在 IE6/Windows 2000 机器上运行的 WatiN LogonDialogHandler 登录安全站点。它不填写代理站点的用户名/密码,但在 IE7 / Windows XP 机器上工作正常。

有没有人曾经/解决过这个问题?

在 dream.in.code 上发现了同样的问题,但没有得到解答。

我知道升级到 IE7 可能会解决这个问题,但现在升级不是一个选项。