在Selenium测试运行时捕获URL

时间:2014-07-09 11:12:31

标签: c# selenium selenium-webdriver wireshark fiddlercore

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

这真的有可能吗?我是否需要使用单独的线程来使用其中一个工具(Fiddler / wireshark /任何其他工具)来捕获网址?

这真的可以做到吗

1 个答案:

答案 0 :(得分:2)

有几个选择。

  1. 在Selenium测试开始之前启动wireshark(或提琴手)。您可以使用在测试设置中执行的批处理文件来执行此操作。
  2. 您可以为fiddler使用浏览器插件。 IE有一个,我不确定是否所有浏览器都有一个可比的插件。然后你可以让Selenium通过浏览器激活它...假设fiddler保持在浏览器窗口中而不打开Selenium看不到的单独的非浏览器窗口。 更新: Fiddler插件不会留在浏览器窗口中,因此该选项不起作用。
  3. 编写一些执行driver.Url的包装器代码并将其存储到列表中。此包装器代码将检查driver.Url是否与对象中最后存储的条目不同,如果它不同,则会将其添加到列表中。
  4. 所有都有利弊。 3会给你最大的控制权,因为你的测试本身会收集URL并在代码中维护一个你可以做你想做的事情的列表。 1当然会为您提供最强大的细节,具体取决于您如何设置wireshark,您可以分析整个机器和网络体验。 2是你的测试仍然驱动它的中间地带,但结果是分开的...但是作为浏览器的一部分,你必须避免在测试后进行清理......如果你有更多的测试而不是一次执行这个可能导致很多问题...