TIF_NGANJUK_E41222052/pages/materi_pembelajaran_page.py

106 lines
2.9 KiB
Python

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class MateriPembelajaranPage:
# ===== SIDEBAR =====
MENU_MATERI_PEMBELAJARAN = (
By.XPATH,
"//div[normalize-space()='Materi Pembelajaran']/ancestor::a"
)
SUBMENU_ENKAPSULASI = (
By.XPATH,
"//a[@href='/materi']//div[normalize-space()='Enkapsulasi']"
)
# ===== LEARNING STYLE UTAMA =====
LEARNING_STYLE_TITLE = (
By.XPATH,
"//h5[normalize-space()='Learning Style Kamu 🎉']"
)
LEARNING_STYLE_VALUE = (
By.XPATH,
"//h5[normalize-space()='Learning Style Kamu 🎉']/following-sibling::p"
)
BUTTON_MULAI_BELAJAR_UTAMA = (
By.XPATH,
"//h5[normalize-space()='Learning Style Kamu 🎉']/following::a[normalize-space()='Mulai Belajar']"
)
# ===== PESAN ALTERNATIF =====
PESAN_ALTERNATIF = (
By.XPATH,
"//h5[contains(text(),'Materi Sesuai Learning Style Kamu Sulit Dipahami')]"
)
# ===== CARD ALTERNATIF =====
CARD_VISUAL = (
By.XPATH,
"//h5[normalize-space()='Visual']/following::a[normalize-space()='Mulai Belajar'][1]"
)
CARD_AUDITORY = (
By.XPATH,
"//h5[normalize-space()='Auditory']/following::a[normalize-space()='Mulai Belajar'][1]"
)
CARD_READ_WRITE = (
By.XPATH,
"//h5[normalize-space()='Read/ Write']/following::a[normalize-space()='Mulai Belajar'][1]"
)
# ===== JUDUL HALAMAN MATERI =====
JUDUL_HALAMAN_MATERI = (
By.XPATH,
"//h4[@class='fw-bold mb-4']"
)
def __init__(self, driver):
self.driver = driver
self.wait = WebDriverWait(driver, 10)
# ===== ACTIONS =====
def open_from_sidebar(self):
self.wait.until(
EC.element_to_be_clickable(self.MENU_MATERI_PEMBELAJARAN)
).click()
self.wait.until(
EC.element_to_be_clickable(self.SUBMENU_ENKAPSULASI)
).click()
def click_mulai_belajar_utama(self):
self.wait.until(
EC.element_to_be_clickable(self.BUTTON_MULAI_BELAJAR_UTAMA)
).click()
def click_visual(self):
self.wait.until(
EC.element_to_be_clickable(self.CARD_VISUAL)
).click()
def click_auditory(self):
self.wait.until(
EC.element_to_be_clickable(self.CARD_AUDITORY)
).click()
def click_read_write(self):
self.wait.until(
EC.element_to_be_clickable(self.CARD_READ_WRITE)
).click()
def get_learning_style_user(self):
return self.wait.until(
EC.visibility_of_element_located(self.LEARNING_STYLE_VALUE)
).text
def get_judul_materi(self):
return self.wait.until(
EC.visibility_of_element_located(self.JUDUL_HALAMAN_MATERI)
).text