File size: 2,321 Bytes
e96fbd0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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()