from conf import browser import math def calc(x): return str(math.log(abs(12*math.sin(int(x))))) browser.get("http://suninjuly.github.io/get_attribute.html") img1 = browser.find_element_by_tag_name("img") img1_value_atribute = img1.get_attribute("valuex") res = calc(img1_value_atribute) browser.find_element_by_id("answer").send_keys(f"{res}") browser.find_element_by_id("robotCheckbox").click() browser.find_element_by_css_selector("[value='robots']").click() browser.find_element_by_tag_name("button").click()
from conf import browser, ID, TAG import math def calc(x): return str(math.log(abs(12 * math.sin(int(x))))) browser.get("http://suninjuly.github.io/alert_accept.html") TAG("button").click() alert_ok = browser.switch_to_alert() # свитчимся на алерт alert_ok.accept() # в алерте жмем кнопку согласия num = ID("input_value").text res = calc(num) ID("answer").send_keys(res) TAG("button").click()
from conf import browser from selenium.webdriver.support.ui import Select browser.get("http://suninjuly.github.io/selects2.html") num1 = browser.find_element_by_id("num1").text num2 = browser.find_element_by_id("num2").text sum = int(num1) + int(num2) print("num1 = ", num1) print("num2 = ", num2) print("sum = ", sum) select = Select(browser.find_element_by_tag_name("select")) select.select_by_value(f"{sum}") browser.find_element_by_tag_name("button").click()
from conf import browser, ID # говорим WebDriver искать каждый элемент в течение 5 секунд browser.implicitly_wait(5) browser.get("http://suninjuly.github.io/wait1.html") button = ID("verify").click() message = ID("verify_message").text assert "successful" in message
from conf import browser import math def calc(x): return str(math.log(abs(12 * math.sin(int(x))))) browser.get("http://suninjuly.github.io/execute_script.html") x = browser.find_element_by_id("input_value").text res = calc(x) browser.find_element_by_id("answer").send_keys(res) browser.find_element_by_id("robotCheckbox").click() radio_button = browser.find_element_by_tag_name("[value = 'robots']") browser.execute_script("return arguments[0].scrollIntoView(true);", radio_button) radio_button.click() button = browser.find_element_by_tag_name("button") browser.execute_script("return arguments[0].scrollIntoView(true);", button) button.click()
import os from conf import browser browser.get("http://suninjuly.github.io/file_input.html") browser.find_element_by_tag_name("[name='firstname']").send_keys("Ig") browser.find_element_by_tag_name("[name='lastname']").send_keys("Ig") browser.find_element_by_tag_name("[name='email']").send_keys("*****@*****.**") file_dir = os.path.abspath(os.path.dirname(__file__)) # __file__ означает, что дериктория находится в капке со скриптом file = os.path.join(file_dir, 'file.txt') browser.find_element_by_id("file").send_keys(file) browser.find_element_by_tag_name("button").click()
from conf import browser, ID from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import math def calc(x): return str(math.log(abs(12 * math.sin(int(x))))) browser.get("http://suninjuly.github.io/explicit_wait2.html") # говорим Selenium проверять в течение 5 секунд, пока кнопка не станет кликабельной button = WebDriverWait(browser, 12).until( EC.text_to_be_present_in_element((By.ID, "price"), "$100")) ID("book").click() num = ID("input_value").text res = calc(num) ID("answer").send_keys(res) ID("solve").click()
from conf import browser link = "https://SunInJuly.github.io/execute_script.html" browser.get(link) button = browser.find_element_by_tag_name("button") browser.execute_script("return arguments[0].scrollIntoView(true);", button) button.click() # В метод execute_script мы передали текст js-скрипта и найденный элемент button, к которому нужно будет проскролить # страницу. После выполнения кода элемент button должен оказаться в верхней части страницы. # # Также можно проскролить всю страницу целиком на строго заданное количество пикселей. Эта команда проскроллит страницу # на 100 пикселей вниз: # # browser.execute_script("window.scrollBy(0, 100);") # # !Важно. Мы не будем в этом курсе изучать, как работает JavaScript, и обойдемся только приведенным выше примером # скрипта с прокруткой страницы. Для сравнения приведем скрипт на этом языке, который делает то же, что приведенный # выше пример для WebDriver:
from conf import browser browser.get("http://suninjuly.github.io/math.html") people_radio = browser.find_element_by_id("peopleRule") people_checked = people_radio.get_attribute("checked") print("value of people radio: ", people_checked) assert people_checked == "true", "People radio is not selected by default" robots_radio = browser.find_element_by_id("robotsRule") robots_checked = robots_radio.get_attribute("checked") assert robots_checked is None