def stepik_send_answer(remote: webdriver.Remote, answer: str): remote.get("https://stepik.org/lesson/184253/step/4?unit=158843") WebDriverWait(remote, 3).until(lambda x: x.find_element_by_tag_name("textarea")) remote.find_element_by_tag_name("textarea").send_keys(answer) remote.find_element_by_class_name("submit-submission").click() WebDriverWait(remote, 3).until(lambda x: x.find_element_by_id("correct"))
def stepik_send_answer(remote: webdriver.Remote, answer: str): remote.get(LINK_LESSON) WebDriverWait(remote, 3).until(lambda x: x.find_element_by_tag_name("textarea")) remote.find_element_by_tag_name("textarea").send_keys(answer) remote.find_element_by_class_name("submit-submission").click() WebDriverWait(remote, 3).until(lambda x: x.find_element_by_id("correct"))
def _send_answer(remote: Remote, link: str, answer_to_send: str) -> None: def wait_textarea(_remote: Remote): return _remote.find_element_by_css_selector("textarea.textarea") def wait_textarea_enabled(_remote: Remote): return _remote.find_element_by_tag_name("textarea").is_enabled() def wait_correct(_remote: Remote): return _remote.find_element_by_class_name("correct") remote.get(link) WebDriverWait(remote, 3).until(wait_textarea) try: remote.find_element_by_class_name("again-btn").click() WebDriverWait(remote, 3).until(wait_textarea_enabled) except NoSuchElementException: pass remote.find_element_by_css_selector("textarea.textarea").send_keys( answer_to_send) remote.find_element_by_class_name("submit-submission").click() try: WebDriverWait(remote, 3).until(wait_correct) expected = "Correct!" result = remote.find_element_by_class_name( "smart-hints__hint").text assert result == expected, f"{expected} != {result}" except NoSuchElementException: assert False, "No smart-hints__hint element on the page after submission"
def stepik_auth(remote: webdriver.Remote): remote.get(LINK_TO_STEPIK) WebDriverWait(remote, 3).until(lambda x: x.find_element_by_name("login")) remote.find_element_by_name("login").send_keys(LOGIN) remote.find_element_by_name("password").send_keys(PASSWORD) remote.find_element_by_class_name("sign-form__btn").click() WebDriverWait( remote, 3).until(lambda x: x.find_element_by_class_name("navbar__profile-img"))
def stepik_auth(remote: webdriver.Remote): remote.get(auth_link) WebDriverWait(remote, 3).until(lambda x: x.find_element_by_name("login")) auth_elems = ("login", "password") for auth_elem in auth_elems: remote.find_element_by_name(auth_elem).send_keys(os.getenv(auth_elem)) remote.find_element_by_class_name("sign-form__btn").click() WebDriverWait( remote, 3).until(lambda x: x.find_element_by_class_name("navbar__profile-img"))
def test_add_to_basket_button(browser: Remote) -> None: browser.get(link) assert browser.find_element_by_class_name( "btn-add-to-basket"), "The button for adding to basket does not exist"
def wait_correct(remote: Remote): return remote.find_element_by_class_name("correct")
def _get_element_by_class(self, element_class: str, browser: webdriver.Remote): return browser.find_element_by_class_name(element_class)