所以我有一个selenium / Python脚本,它读取一个URL列表的JSON文件,然后一个接一个地浏览它们;并截取屏幕截图。
我想在测试结束时生成结果报告(HTML),但需要跟随;
报告不应该只说脚本通过/失败,而且它还会针对每个参数URL共享结果。例如,如果5个网站中有2个在测试时出现故障,则会反映在HTML结果中。 喜欢facebook.com - 好的,而www.sdadas.com - 失败
这是我的代码:
with open('Path to JSON file', encoding='utf-8') as s:
data = json.loads(s.read())
driver = Edge()
driver.set_page_load_timeout(10)
driver.implicitly_wait(5)
for site in data['sites']:
driver.get(data['sites'][site])
driver.get_screenshot_as_file("Screenshot path\\Image" + site + '.png')
driver.close()
我的JSON文件
{
"sites": {
"facebook": "http://www.facebook.com",
"Wrong": "http://www.gonssgle.com"
}
}
答案 0 :(得分:1)
有几种方法可以检查网站是否已关闭/不可用。您可以使用selenium检查是否存在显示站点关闭的错误消息(这可能会有所不同,具体取决于您使用的浏览器),但我不建议您这样做。
我只是简单地使用python requests
库(python3)或任何类似的库来访问每个站点并检查其响应代码,例如:
response = requests.get(data)
assert response.status_code == requests.codes.ok
然后继续获取截屏代码
另外,为了生成HTML报告,我建议你使用python单元测试框架运行你的代码,比如unittest,pytest等。每个都应该有html报告插件,你可以根据需要自定义它。它将根据您的测试结果生成测试报告。