106 lines
2.9 KiB
Python
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
|