我正在使用watir-webdriver进行测试自动化,需要一种方法来确定我的测试页是否在浏览器中触发了不安全内容警告,或者是否在http而不是https中加载任何资源。
有没有办法在watir-webdriver中执行此操作?或者我可以使用另一种工具来做到这一点吗?
例如,如果您转到https://github.com并查看网络流量,您会看到一堆.js文件和通过https加载的图片。我需要一个能够确定是否使用http而不是https加载任何资源的脚本。主要浏览器会在安全网站上发生某种警告,但它们并不总是会创建弹出窗口。
答案 0 :(得分:0)
我认为您最好的选择是使用pcap
(ruby-pcap,tutorial)捕获watir-webdriver发送的请求。你的代码是这样的:
require 'pcaplet'
# start capturing packets
httpdump = Pcaplet.new('-s 1500')
#
# do web requests here
#
insecure_reqs = []
httpdump.add_filter(
# you could also filter by just tcp and then check pkt.dst_port in the loop
Pcap::Filter.new('tcp and dst port 80', httpdump.capture)
)
httpdump.each_packet do |pkt|
insecure_reqs << pkt.dst.to_s
end
(免责声明:这是未经测试的,并且是从ruby-pcap的example拼凑而成的。)
缺点是你需要确保你的机器上没有其他任何东西在你的测试运行时发出请求,所以在隔离的服务器或VM中运行它是一个不错的选择。
答案 1 :(得分:0)