def test_otus(): browser.open_url('https://otus.ru/') # print(browser.title()) # 'Онлайн курсы для профессионалов' browser.element(by.text('Отзывы')).click() el = browser.elements(by.css('.review-tile')).first().text print(el) browser.should(have.text('Selenium'))
def input_data(element): value = element.pop('value') append = element.pop('append') if 'append' in element.keys() else False locator = element.popitem() if not append: browser.element(locator_type[locator[0]](locator[1])).clear() browser.element(locator_type[locator[0]](locator[1])).type(value)
def test_company_search(self): try: browser.open_url('') browser.element("select[data-qa='navi-search__select']").find( by.text('Компании')).click() input_field = browser.element( "form[data-hh-tab-id='employersList'] input[placeholder='Я ищу…']" ) input_field.set_value("аптик") search_button = browser.element( "form[data-hh-tab-id='employersList'] button[type='submit']") search_button.click() wait_for_page_load("//div[contains(text(), 'компаний найдено')]") uptick_element = browser.element(by.link_text("ООО «Аптик СПб»")) assert uptick_element.should(be.visible) except NoSuchElementException as e: print("Element was not found. Exception was caught: %s" % e) raise e
def test_qa_vacancy(self): try: browser.open_url('employer/1886264') wait_for_page_load("//h3[text()='Вакансии компании']") qa_vacancy = browser.element( by.xpath( "//span[contains(text(), 'Вакансии в текущем регионе')]/ancestor::h4/following-sibling::div//a[text()='QA Automation Engineer']" )) assert qa_vacancy.should(be.visible) except NoSuchElementException as e: print("Element was not found. Exception was caught: %s" % e) raise e
def test_vacancies_number(self): try: browser.open_url('employer/1886264') wait_for_page_load("//h3[text()='Вакансии компании']") vacancies_number = browser.element( by.xpath( "//span[contains(text(), 'Вакансии в текущем регионе')]/following-sibling::span" )).text assert int(vacancies_number) == 8 #number of vacancies is changed from 9 to 8 due to changes on the site except NoSuchElementException as e: print("Element was not found. Exception was caught: %s" % e) raise e
def __init__(self): self._header = s('app-lbl[ng-reflect-key="Header_Toolbar_WelcomeTo"]') self.pl = s(by.xpath('//div[text()="PL"]')) self.en = s(by.xpath('//div[text()="EN"]')) ############################################################ self._new_job_mane = s('#jobsListNewJobNameInput') self._add_button = s('#jobsListNewJobNameButton') self.jobs_list = ss(by.xpath(' //*[starts-with(@id,"jobsListJob")]//h3')) self.first_job = browser.element(by.xpath(' (//*[starts-with(@id,"jobsListJob")]//h3)[1]')) self.removes = browser.elements(by.xpath('//h3[@class="mat-line"]/../../button')) self._body = s('mat-toolbar.mat-primary > span:nth-child(1)') self.job = 'h3.mat-line' self.work_plate = '#canvasPanel' ############################################################ self.allert = s(by.xpath('//snack-bar-container//span')) ############################################################ self.work_tab = s(by.xpath('//app-lbl[text()="Work"]'))
def read_text(self, css_selector): return browser.element(css_selector).text
def click(self, css_selector): browser.element(css_selector).click() return self
def send_keys(self, css_selector, value): browser.element(css_selector).send_keys(value) return self
def get_first_selected_option(self, css_selector): return Select(browser.element(css_selector)).first_selected_option.text
def select_material_type(self, type_): element(by.xpath("//label[text()='Тип материала']/../md-select")).click() element(by.xpath("//md-option/div/span[text()='{}']".format(type_))).click()
def click_advanced_search_button(self): element(by.xpath(MainPage.advanced_search_button)).scroll_to().click()
def is_element_displayed(self, css_selector): return browser.element(css_selector).is_displayed()
def select_lang(self, lang): element(by.xpath("//label[text()='Язык']/../md-select")).click() element(by.xpath("//md-content/md-option/div/span[text()='{}']".format(lang))).click()
def publication_date(self, publication_date): element(by.xpath("//label[text()='Дата издания']/../md-select")).click() element(by.xpath("//md-option/div/span[text()='{}']".format(publication_date))).click()
def wait_for_page_load(main_component): browser.wait_for(browser.element(by.xpath(main_component)), be.visible, 15)
def press_enter_button(self): element(by.xpath(LoginPage.login_button)).click() return MainPage()
def write_password(self, password): element(by.xpath(LoginPage.user_password)).set(password)
def write_user_name(self, user_name): element(by.xpath(LoginPage.user_name)).set(user_name)
def click_by_xpath(self, xpath, value): browser.element(by.xpath(xpath.format(value))).click() return self
def move_to_element(self, css_selector): element = browser.element(css_selector) ActionChains(browser.driver()).move_to_element( element.get_actual_webelement()).perform() return self
def click_element(element): element = element.popitem() browser.element(locator_type[element[0]](element[1])).click()
def test_opening_relative_url(): config.base_url = 'http://todomvc.com/examples/emberjs' browser.open_url('/') browser.element('#new-todo').should(be.visible)
def write_advanced_text(self, advanced_text): element(by.name(MainPage.search_string)).set(advanced_text)
def set_value(self, css_selector, value): browser.element(css_selector).set_value(value) return self
def select(self, css_selector, value): Select(browser.element(css_selector)).select_by_visible_text(value) return self
def check_element(element): element = element.popitem() browser.element(locator_type[element[0]](element[1])).is_displayed()
def get_value(self, css_selector): return browser.element(css_selector).get_attribute('value')
def s(css_selector_or_by): return browser.element(css_selector_or_by)
def open_advanced_search(self): element(by.xpath(MainPage.advanced_search)).click()