Сохранить скриншот при неудачном тестировании в python с помощью «splinter» - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь сохранить скриншот при неудачном тестировании в python с 'splinter' 1) Этот код работает для Selenium:

# @pytest.fixture(scope="function")
# def browser(request):
#     options = Options()
#     options.add_argument("--headless")
#     options.add_argument("--start-maximized")
#     # browser = webdriver.Chrome(ChromeDriverManager().install())
#     browser = webdriver.Chrome(options=options)
#     browser.implicitly_wait(5)
#     failed_before = request.session.testsfailed
#     yield browser
#     if request.session.testsfailed != failed_before:
#         test_name = request.node.name
#         take_screenshot(browser, test_name)
#     browser.quit()
#
# def take_screenshot(browser, test_name):
#     screenshots_dir = "C:\\Users\Ark\\PycharmProjects\\Gop\\Reports"
#     screenshot_file_path = "{}/{}.png".format(screenshots_dir, test_name)
#     browser.save_screenshot(
#         screenshot_file_path)

, но не работает со Splinter (браузер не закрывать и не делать скриншот):

@pytest.fixture(scope="function")
def browser(request):
    options = webdriver.ChromeOptions()
    options.add_argument("--start-maximized")
    browser = Browser("chrome", headless=False, incognito=True, options=options)
    failed_before = request.session.testsfailed
    yield browser
    if request.session.testsfailed != failed_before:
        test_name = request.node.name
        take_screenshot(browser, test_name)
    browser.quit()

def take_screenshot(browser, test_name):
    screenshots_dir = "C:\\Users\Ark\\PycharmProjects\\Gop\\Reports"
    screenshot_file_path = "{}/{}.png".format(screenshots_dir, test_name)
    browser.save_screenshot(
        screenshot_file_path)
    print("\n!!! SCREENSHOT OF FAILURE '" + test_name + "' SAVED INTO: '" + screenshots_dir + "' WITH NAME '" + test_name + "'")

2) Или как работает эта функция? (pytest-splinter) splinter_make_screenshot_on_failure https://github.com/pytest-dev/pytest-splinter

Вы можете помочь?

...