Spaces:
Running
Running
from playwright.sync_api import sync_playwright | |
import time | |
URL = "https://yozora721-pnp-chatbot-v1.hf.space" | |
PERTANYAAN = "Halo" | |
def kirim_pertanyaan(page, pertanyaan: str): | |
"""Ketik pertanyaan dan kirim.""" | |
page.locator('textarea[placeholder="Masukkan pertanyaan"]').fill(pertanyaan) | |
page.keyboard.press("Enter") | |
page.wait_for_selector('.stChatMessage', timeout=60000) | |
def jumlah_tag_audio(page) -> int: | |
"""Hitung jumlah tag <audio>""" | |
return len(page.query_selector_all("audio")) | |
def klik_toggle_tts(page): | |
"""Klik Toggle TTS sesuai status awal""" | |
aktif = page.locator('text=π Text-to-Speech Aktif') | |
nonaktif = page.locator('text=π Text-to-Speech Nonaktif') | |
if aktif.count() > 0: | |
aktif.click() | |
elif nonaktif.count() > 0: | |
nonaktif.click() | |
def test_tts_condition(page, tts_aktif: bool): | |
"""Test untuk satu skenario.""" | |
print(f"\n=== TEST: {'TTS Aktif' if tts_aktif else 'TTS Nonaktif'} ===") | |
awal_aktif = page.locator('text=π Text-to-Speech Aktif') | |
awal_nonaktif = page.locator('text=π Text-to-Speech Nonaktif') | |
# Atur status sesuai kebutuhan | |
if tts_aktif and awal_nonaktif.count() > 0: | |
klik_toggle_tts(page) | |
if not tts_aktif and awal_aktif.count() > 0: | |
klik_toggle_tts(page) | |
kirim_pertanyaan(page, PERTANYAAN) | |
jumlah_audio = jumlah_tag_audio(page) | |
if tts_aktif: | |
if jumlah_audio > 0: | |
print(f"β [AKTIF] Ada {jumlah_audio} tag <audio> (sesuai ekspektasi).") | |
else: | |
print(f"β [AKTIF] Tidak ditemukan tag <audio>.") | |
else: | |
if jumlah_audio == 0: | |
print(f"β [NONAKTIF] Tidak ditemukan tag <audio> (sesuai ekspektasi).") | |
else: | |
print(f"β [NONAKTIF] Ada {jumlah_audio} tag <audio>, tidak sesuai ekspektasi.") | |
time.sleep(3) # buat melihat efek sebelum tes selanjutnya | |
def main(): | |
"""Main entry point.""" | |
with sync_playwright() as p: | |
browser = p.chromium.launch(headless=False) # True kalau tidak perlu melihat | |
page = browser.new_page() | |
page.goto(URL) | |
# Test dengan TTS aktif | |
test_tts_condition(page, True) | |
# Test dengan TTS nonaktif | |
test_tts_condition(page, False) | |
browser.close() | |
if __name__ == '__main__': | |
main() | |