Перейти к содержимому

Gleb_Kazarkin

Регистрация: 12 фев 2019
Offline Активность: 06 июл 2020 07:41
*----

Мои темы

Как загрузить файл, без поля для ввода текста? (python)

29 января 2020 - 15:17

upload file = нужно по клику на web элемент, открыть проводник, кликнуть на картинку и добавить её

Пример: https://upload.photo...om/en/#computer

Если так

element.send_keys("C:\Users\name\Downloads\1.png")

то AttributeError: 'ElementList' object has no attribute 'send_keys'

Заметьте, что там нет поля ввода для пути файла, а только иконка, по клику на которую открывается проводник.

Как решить эту проблему? (в идеале для Splinter (python tool)

https://splinter.rea...s.io/en/latest/


Heroku CI + несколько вопросов по CI

27 января 2020 - 15:57

Привет!

1) Есть у кого опыт или понимание как развернуть CI тестирование на Heroku CI (python) или аналогичном облаке?
Я не имею опыта с CI (но есть базовое понимание как работает CI, чуток понимаю Jenkins)

Так же интересуют нюансы:
2) Как устанавливается python в CI?

3) Обязательно разворачивать виртуальное окружение через requirements.txt?
Что если просто залить папку venv со всеми библиотеками внутри?

4) Как натравить тесты на другую ветку с кодом, чтобы при каждом мёрдже гонялись тесты?

5) Как прописать, что при удачных тестах, пропускать эти мёрджи в пулл?

6) Что если изменились локаторы и тесты падают, теперь все коммиты будут блокироваться пока не починишь тесты?


Скопировать пин код из письма и вставить

18 января 2020 - 18:13

Добрый день!
Требуется скопировать пин код из письма и вставить (пытаюсь с помощью pyperclip)
Python + Splinter:

Пин код находится в:
<p class="pin-container_mailru_css_attribute_postfix" style="border-color: rgb(31, 31, 31) !important;">5964</p> == $0

pin = browser.find_by_css("p.pin-container_mailru_css_attribute_postfix", wait_time=5)
# Пытаюсь взять атрибут текст из элемента
pin_code = pin.text
# Пытаюсь скопировать его в буфер обмена
copied = str(pyperclip.copy(pin_code))
# Печатаю для визуальной проверки
print("email is: " + copied)

Result = email is: None

 


Как прикрутить WebdriverManager к Splinter?

18 января 2020 - 17:14

Я использую Splinter, но драйвер добавляется вручную или в корень проекта. Как насчёт использования webdriver_manager? Как соединить их?
Как ни пробовал, не получилось.

Исходный код такой (Splinter):



@pytest.fixture(scope="function")
def browser(request):
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
executable_path = {'executable_path': "../chromedriver.exe"}
""" Using splinter (python tool): https://github.com/cobrateam/splinter"""
browser = Browser("chrome", headless=False, incognito=True, options=options, **executable_path)
# browser = Browser("chrome", headless=False, incognito=True)
yield browser
browser.quit()
github.com/cobrateam/splinter
github.com/SergeyPirogov/webdriver_manager 

 


Save screenshot on test failure in python with 'splinter'

18 января 2020 - 17:09

Я пытаюсь сохранить скриншот при падении теста в 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(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) Так же не получается прикрутить функцию splinter_make_screenshot_on_failure из pytest-splinter  https://github.com/p...pytest-splinter

Есть кто шарит? :)