在Selenium测试运行时捕获URL

本文关键字:URL 运行时 测试运行 Selenium 测试 | 更新日期: 2023-09-27 18:12:12

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

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

这真的能做到吗

在Selenium测试运行时捕获URL

有几个选项。

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

都有优点和缺点。3会给你最大的控制,因为你的测试本身会收集URL并在代码中维护一个列表,你可以做你想做的事情。我当然会给你最可靠的细节,这取决于你如何设置wireshark,你可以描述整个机器和网络的体验。2是一个中间地带,你的测试仍然驱动它,但结果是分开的……但作为浏览器的一部分,你必须避免在测试后清理…如果一次执行多个测试,可能会导致很多问题…