【问题标题】:Capturing URL while Selenium Tests run在 Selenium 测试运行时捕获 URL
【发布时间】:2014-07-09 11:12:30
【问题描述】:

我正在使用 selenium webdriver 和 C# 实现自动化。有没有办法在我的 Selenium 自动化测试使用外部工具(如 Fiddler core / wireshark)运行时捕获我的浏览器导航到的所有 url。我的意思是,当我的测试继续运行时,我希望其中一些工具能够并行捕获我的 url,以便在我的测试失败的情况下,我可以通过使用最后几个 url(从故障点)来调试问题来进一步调查。

这真的可能吗。我是否需要对这些工具之一(Fiddler/wireshark/任何其他工具)使用单独的线程来捕获 url?

这真的可以吗

【问题讨论】:

标签: c# selenium selenium-webdriver wireshark fiddlercore


【解决方案1】:

有几个选项。

  1. 在 Selenium 测试开始之前启动 wireshark(或 fiddler)。您可以使用在测试设置中执行的批处理文件来执行此操作。
  2. 您可以为提琴手使用浏览器插件。 IE 有一个,但我不确定是否有适用于所有浏览器的类似插件。然后你可以让 Selenium 通过浏览器激活它...假设 fiddler 保持在浏览器窗口中,而不是打开 Selenium 看不到的单独的非浏览器窗口。更新: Fiddler 插件不会停留在浏览器窗口中,因此此选项不起作用。
  3. 编写一些包装代码来执行driver.Url 并将其存储到列表中。此包装器代码将检查 driver.Url 是否与对象中最后存储的条目不同,如果不同,则将其添加到列表中。

各有利弊。 3 将为您提供最大的控制权,因为您的测试本身会收集 URL 并在代码中维护一个列表,您可以使用它来做您想做的事情。 1 当然会给你最强大的细节,这取决于你如何设置wireshark,你可以分析整个机器和网络体验。 2是一个中间地带,您的测试仍然驱动它,但结果是分开的......但是作为浏览器的一部分,您必须避免在测试后进行清理......如果您一次执行的测试多于一个可能会导致很多问题...

【讨论】:

  • 谢谢,driver.url 有效。我使 url 捕获在一个单独的线程中运行并递归调用它。一旦测试用例失败,我将保存到文本文件。非常简单的解决方案,但效果很好!
  • Fiddler 的 IE 插件只是启动该工具,它根本不做任何其他事情。 Firefox 插件可以选择将 Firefox 的设置指向 Fiddler,仅此而已。
  • 完全正确...这使得上面的选项 2 错误...我会从头开始
  • 你们有谁知道是否可以将 Selenium + Fiddler Core 与云测试集成,例如browserstack.com
猜你喜欢
  • 1970-01-01
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 2020-11-10
  • 1970-01-01
  • 2014-11-22
  • 2018-09-07
相关资源
最近更新 更多