0

所以我有一个 selenium/Python 脚本,它读取一个 JSON 文件以获取 URL 列表,然后一个一个地浏览它们;并截图。

我想在测试结束时生成一个结果报告(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"
    }
}
4

1 回答 1

1

有几种方法可以检查站点是否已关闭/不可用。您可以使用 selenium 检查是否存在显示站点关闭的错误消息(这可能会有所不同,取决于您使用的浏览器),但我不建议您这样做。

我只是简单地使用 pythonrequests库(python3)或任何类似的库来访问每个站点并检查其响应代码,例如:

response = requests.get(data)
assert response.status_code == requests.codes.ok

然后继续获取屏幕截图代码

另外,要生成 HTML 报告,我建议您使用 python 单元测试框架运行您的代码,例如 unittest、pytest 等。每个都应该有 html 报告插件,如果需要,您可以自定义它。它将根据您的测试结果生成测试报告。

于 2018-02-28T15:16:45.903 回答