问题标签 [browser-automation]
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.
ajax - 自动测试 AJAX Web UI 时使用延迟的替代方法
我很快将致力于 AJAX 驱动的网页,这些网页具有从 Web 服务 (WCF) 生成的大量内容。
我过去测试过这种东西(并且发现它很容易),但没有这种级别的动态内容。
我正在使用 Visual Studio 2008 在 .NET 3.5 中进行开发。我设想在以下环境中进行此测试:
- 测试驱动.NET
- MBUnit(虽然这不是单元测试)
- 某种控制浏览器的自动化工具(也许是 Selenium,虽然它可能是 SWEA 或 Watin。我在想 IE、Firefox,可能还有 Opera 和 Safari。)
过去我在测试浏览器时使用过延迟。我不是特别喜欢这样做,而且会浪费时间。
有什么经验和实践可以比使用等待做得更好。也许引入回调和函数式编程来运行测试?
注释 1. 查看前 3 个回复后的详细信息。
1) 感谢 Alan、Eran 和 marxidad,您的回复让我走上了获得答案的道路,希望不会花费太多时间。
2) 另一个细节,我使用jQuery来运行 Ajax,所以这不是在 Asp.NET AJAX 中构建的。
3)我发现一篇文章很好地说明了这种情况。它来自http://adamesterline.com/2007/04/23/watin-watir-and-selenium-reviewed/
3.1) Selenium示例(这个和下一个,WatiN,代码示例没有显示在原始网页中(在 IE 或 Firefox 上),所以我已经提取它们并在此处列出它们。)
3.2) WatiN样本
3.3) 如果您查看这些显然等效的示例,您会发现 WatiN 示例已经抽象掉了 waits。
3.4) 然而,WatiN 可能需要额外支持由 Ajax 调用更改的值,如http://watinandmore.blogspot.com/2008/01/using-watin-to-test-select-lists-in.html中所述。在那篇文章中,页面被赋予了一个额外的字段,可用于合成更改的事件,如下所示:
4)现在我所追求的是一种方法,可以在没有合成事件的情况下执行我们在 WatiN 代码中看到的操作。这可能是一种直接挂钩事件的方法,例如更改的事件。我也不会遇到回调问题,尽管这可能会改变测试的编码方式。我还认为,随着 C# 3、VB 9 和 F# 中的新功能的影响开始深入(并且不介意对此进行探索),我们将看到编写测试的替代方法。
5) marxidad,我的来源没有来自 WebAii 的样本,所以我对这个看起来很有趣的工具没有任何评论。
注释 2. 2008-09-29。经过一些独立于此页面的反馈。
5) 我试图为上面的 WatiN 示例代码获取更完整的源代码。不幸的是,它不再可用,链接已失效。这样做时,我注意到 DSL,大概是在网页和自动化工具之间映射的模型。我没有找到这方面的细节。
6) 对于 WebAii,建议使用这样的代码(未经测试):
6)从代码中我可以清楚地避免等待和延迟,使用一些框架,但我需要花更多的时间来看看 WatiN 是否适合我。
.net - 如何在 .NET 中自动化 Web 代理以进行单元测试(包括设置和拆除)?
遵循 Jonathan Holland 在他对我之前的问题的评论中的建议:.NET 中有没有办法以编程方式监听 HTTP 流量?对于我真正想知道的问题,我提出了一个单独的(但不完全是重复的)问题:
如何在 .NET 中自动化 Web 代理以进行单元测试(包括设置和拆除),以监视来自浏览器的 HTTP 流量(尤其是请求页面上的图像、脚本和 XmlHttpRequest)?
我更喜欢零设置(所以没有在 Windows 上安装 Fiddler),可以说,所有东西都可以从程序集中解包、部署,然后无痕迹地删除。
internet-explorer - 如何配置 IE7 以下载文件类型而不是在浏览器中打开
我写了一个下载文件的 watir 脚本。它下载的文件之一具有 .dcf 扩展名。几个月前,在我的机器上,我更改了某处的设置,以便 .dcf 文件提示下载(“您要打开还是保存此文件?”)而不是在浏览器中打开。这是我想要的行为。我正在使用 XP Pro/IE7。
我现在正在设置一台专用的测试机器,但似乎找不到我在我的机器上所做的配置选项 - 这很容易找到,我没有记下它。我现在找到的所有解决方案要么是更改下载本身,要么是修改注册表。我正在从浏览器/IE 级别的客户端角度寻找一些东西。
testing - 如何使用 Selenium 测试使用 openid 登录
有没有办法使用 Selenium 测试登录到具有开放 ID 的站点?
在 Selenium 中,所有测试都存在于服务器中,因此一旦在网页的相应字段中填写了 open id URL,我就会被带到第 3 方网页以输入凭据,并且我的测试无法再运行。
有没有解决的办法?
firefox - 如何从 OS X 上的脚本远程控制 Firefox
我需要编写一些访问某些网站的脚本。来自命令行的脚本会获取一些页面、发布一些表单、屏幕抓取一些信息等。
它不能真正成为像libwww-perl这样的库“浏览器” ,因为某些步骤可能需要用户交互(验证码、仅Ajax表单、任何交互意外等)。
我能想到的最实用的方法是在 Firefox 中远程打开一个选项卡,然后将 JavaScript 代码注入其中,这有点像Greasemonkey和Selenium所做的。它不一定必须用于 Firefox,如果更容易,它可以是不同的浏览器。
那么最好的方法是什么?
vb.net - 将 VB.NET 代码转换为 VBScript
我有这段 VB.NET 代码要转换为 VBScript。它基本上启动 Microsoft Word,显示打开对话框并邮件合并选定的文档。任何帮助将不胜感激。
python - 如何使用python自动浏览?
假设,我需要在特定网站上执行一组程序,例如填写一些表格,单击提交按钮,将数据发送回服务器,接收响应,再次根据响应做一些事情并将数据发送回服务器的网站。我知道 python 中有一个 webbrowser 模块,但我想在不调用任何 web 浏览器的情况下执行此操作。它必须是一个纯脚本。
python中是否有可用的模块,可以帮助我做到这一点?
谢谢
testing - Java 中的自动化 Web 测试工具
我想测试一个基于 Ajax 的 Web 应用程序。我想用 Java 编写测试脚本并模拟 Web 浏览器。
Web 浏览器的模拟非常重要,因为我在 Web 应用程序中使用了非常高级的 Ajax 库,例如 jQuery。
关于我应该如何进行的任何想法?
c# - Internet Explorer 能否以编程方式使用 Socks 代理?
我希望 C# 代码在 Internet Explorer 中使用 Socks 5 代理。我有 http 代理的代码,但该代码不适用于 Socks 代理。
有人有这样的代码吗?请提供一些指示。
我基本上是在 C# 中进行 IE 自动化,我需要使用 IE 使用 socks 代理的代码。
python - 什么是 Python 最好的浏览器自动化工具?
我想编写以下脚本:给定一个文本文件,其中包含要在某个站点上执行的操作列表,它将使用一些浏览器(可能是 IE,因为我对其他可驱动的浏览器一无所知)CSS 渲染和JS 执行功能来模仿用户在网站上执行这些操作。
所以我找到了这个页面和它的“网络测试”部分,它列出了:
- 帕米
- PYXPCOM
- 风车
- 硒
后两者在本地主机上运行某种服务器(这似乎不是一个合适的决定)。
Pamie 有一些有史以来最糟糕的文档,他们网站上的许多“建设中”页面最后一次更新是在 2006 年。
而且 PyXPCOM 似乎不是专门为 FF 创建的。我可能是一个糟糕的谷歌人,但我仍然没有找到一个像使用 FF 这样的使用 PyXPCOM 的好例子。
出于我的目的,您更喜欢哪种方式来引导浏览器,为什么?TIA
更新:
我需要能够在页面上呈现 JavaScript。我想使用一些基于服务器的库不是一个好的解决方案,因为它一次仅限于一个浏览器实例,所以我无法将 2 个浏览器实例设置为 2 个不同的代理,而不必2台服务器(这是正确的吗?)。