- FLASK
- WatchDog
- PYGAME
- PIL
- OpenCV
- SQLAlchemy
- NUMPY
- TENSORFLOW
- NLRK
- RE
- BeautifulSoup
- Requests
- PytTorch
воскресенье, 29 ноября 2020 г.
Интересные библиотеки Python
суббота, 24 октября 2020 г.
Использование переменной в локаторе (XPATH).
Нужно проверить правильная ли цена отображается на сайте.
Переменная var будет разной в зависимости от продукта (или региона, например).
Мы можем использовать данную функцию для поиска и проверки всех цен, меняется только expected_price и var.
@allure.step("Check that price is correct")
def is_price_correct(driver, expected_price, var):
price_locator = (
By.XPATH,
'//div[@id="buySASub1"]//span[contains(@data-type, "upgrade")
and contains(@data-tier, "'+var+'")]'
)
return is_element_price_correct(driver, expected_price, price_locator)
пятница, 23 октября 2020 г.
Как правильно переносить текст при использовании CSS-селекторов (CSS-Selector)
def click_buy_button(driver):
a_button_locator = (
By.XPATH,
"//a[contains(@class, 'product-purchase') "
"and contains(@href, '" + Config.ps_base_url + "')]"
)
a_button = Button(driver, a_button_locator)
a_button.click()
Описание XPath с помощью Contains
Contains примеры:
1) Класс
//a[contains(@class, 'product-formatted-price')
2) Текст
a[contains(text(),"Get")]
3) Ссылку
//a[contains(@class, 'product-purchase') and contains(@href, '" + Config.ps_base_url + "')]
4) ID
//div[contains(@id,"content")]
5) Другие (data-type...)
//span[contains(@data-type, 'no')]
6) Содержит сразу 2 условия
//span[contains(@data-type, 'no') and contains(@data-time, '0')]
7) Описать элемент, который находится внутри секции buySub1
//div[@id="buySub1"]//span[contains(@data-type, 'no') and contains(@data-tier, '0')]
четверг, 22 октября 2020 г.
Как обновить Allure, Pytest, Selenium и др. в PyCharm. Как использовать Pytest в PyCharm
Чтобы использовать Pytest для тестирования в PyCharm:
1. PyCharm - Preferences
2. Tools - Python Integrated Tools
3. В Default test runner выбираем Pytest
4. Apply - Сохраняем изменения
Чтобы ОБНОВИТЬ пакеты программ для Python в PyCharm (Allure, Pytest, Selenium, BrowserStack Local, Pip, Cryptography, myOpenSSL, Webdriver Manager и другие):
1. PyCharm - Preferences
Установить ALLURE для Mac (Мак)
Чтобы установить Allure (Алюр) на ваш компьютер в Терминале введите следуюший текст:
- для Mac
brew install allureвторник, 20 октября 2020 г.
Switch to iFrame - Если нужно переключиться на frame и обратно
Например, существует иконка Помощника (Help), которая должна отображаться на всех страницах вебсайта. Пользователь может кликнуть на нее и пообщаться с Службой поддержки.
Сейчас существует много сервисов, которые позволяют использовать их инструмент для такого окна - Intercom, Helpscout, Zendesk....
АВТОТЕСТ:
- Проверить, что иконка помощника отображается на странице.
Открываем trial_download_signup_page старницу.
Переключаемся на Frame, где эта иконка находится. Потом ищем иконку, проверяем ее видимость на странице и переключаемся обратно на исходную страницу.
Дальше нам надо еще ввести и-мейл, согласиться с условиями и кликнуть кнопку Download.
На открывшейся старницы мы тоже проверяем наличие Help иконки.
Для переключения на рамку будем использовать функцию - switch_to_frame
Для возвращения на исходную страницу - switch_to_default_content
def test_user_should_see_help_icon_on_trial_download_signup_page(driver):
trial_download_signup_page.open(driver)
assert trial_download_signup_page.help.is_icon_displayed(driver), \
"Help icon is not displayed on Trial Download Signup page"
driver.switch_to_default_content()
trial_download_signup_page.set_email(driver, TestData.get_random_email())
trial_download_signup_page.agree_to_terms_and_policy(driver)
trial_download_signup_page.click_download_button(driver)
assert trial_download_signup_page.help.is_icon_displayed(driver), \
"Help icon is not displayed on SA Signup Follow page"
in Help file:
@allure.step("Check if Help icon is displayed on the page")
def is_icon_displayed(driver):
iframe = HtmlElement(driver, (By.CSS_SELECTOR, "selector"]'))
iframe.switch_to_frame()
help_icon = HtmlElement(driver, (By.CSS_SELECTOR, "selector"]'))
return helpscout_icon.is_element_visible()
Как проверить что элемент содержит определенный класс (пример - Error class)?
Как проверить что элемент содержит определенный класс? Python-Selenium
Задача:
def test_user_should_see_warning_if_fields_are_not_filled(driver):
support_page.open(driver)
support_page.click_send_message_button(driver)assert support_page.is_name_field_has_error_class(driver), \ "The Name field has no Error class"@allure.step("Check that Name field has Error class when this field does not filled") def is_name_field_has_error_class(driver): name_input_field = HtmlElement(driver, (By.CSS_SELECTOR, '[name="name"]')) return 'error' in name_input_field.get_attribute("class")class HtmlElement: def __init__(self, driver, locator): self.driver = driver self.element_locator = locatordef get_attribute(self, attribute_name, timeout=30): wait = WebDriverWait(self.driver, timeout) try: element = wait.until(expected_conditions.presence_of_element_located(self.element_locator)) return element.get_attribute(attribute_name) except TimeoutException: raise NoSuchElementException("Can't find element with locator " + str(self.element_locator) + " after " + str(timeout) + " seconds.")
понедельник, 19 октября 2020 г.
Как проверить, чтобы статистика передается в Facebook и Google Analytics.
Наш сайт использует GTM (Google Tag Manager) для сбора статистики для Гугл Аналитикс (Google Analytics) и Фейсбук (Facebook).
Чтобы проверить что сайт отправляет запрос на GA и Facebook нужно сделать следующие шаги:
1. Заходим в DevTools - Inspect
2. Выбираем Network
3. Ставим галочку Preserve Log
5. Выбираем закладку Headers
6. Ищем там Query String Parameters
суббота, 23 мая 2020 г.
Тип данных - Словарь (Dictionary)
Например мы имеем список с оценками студентов за экзамен
student_grades = [12, 5, 6, 10, 11, 10, 9, 8, 7]
Но имея этот список мы не знаем какой студент получил какую оценку. Чтобы привязать имя студента к оценке, мы используем Dictionary (Словарь):
student_grades = {"Marie": 12, "John": 5, "Max": 6, "Michael": 10, "Anna": 11}
Marie - это ключ (key)
12 - это значение (value)
МЕТОД 1 - VALUES()
МЕТОД 2 - KEYS()
Все методы, которые мы можем использовать с переменной
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
Вывести оценку определенного студента
student_grades = {"Marie": 12, "John": 5, "Max": 6, "Michael": 10, "Anna": 11}
marie_grade = student_grades.get("Marie")
print(marie_grade)
Посчитать сколько раз элемент встречается в списке
student_grades list содержит оценки студентов за экзамер.
Функция COUNT() считает сколько раз определенный элемент попадается в списке.
student_grades = [9.1, 8.8, 10.0, 7.7, 6.8, 8.0, 10.0, 8.1, 10.0, 9.9]
n = student_grades.count(10.0)
print(n)
Результат:
3
Самые полезные ФУНКЦИИ Пайтона
1) PRINT - выводит на печать переменную, указанную в скобках print (average) 2) LEN - посчитать количество элементов в списке student...
-
Например, мы нажимаем на кнопку и открывается новая вкладка (tab) в том же окне. Перед тем, как переключиться на эту новую вкладку, лучше ...
-
Contains примеры: 1) Класс //a[contains(@class, 'product-formatted-price') 2) Текст a[contains(text(),"Get")] 3) Ссылку /...








