test_1975651_comic_k-manga_jp.py (2738B)
1 import pytest 2 3 URL = "https://comic.k-manga.jp/" 4 FIRST_BOOK_CSS = "[data-bookid] a[href*=title]" 5 READ_FREE_CSS = "[class*=book-info] a[href*=viewer-launcher]" 6 SUPPORTED_CSS = ".nv-pvImageCanvas" 7 UNSUPPORTED_TEXT = "お使いのブラウザでは閲覧できません" 8 9 OUTDATED_LINK_URL = "https://comic.k-manga.jp/viewer/sp/viewer.html?p0=BGTK_7e2f84c12e3fc8693054e926112aaaf1_202507041517&p1=9a027f2bcdae4b9c9505ede256522118&p2=2&p3=186044&p4=1&p5=eyJ1c2VySWQiOiJmYTU4ZWUzNDNjZjA1M2U0MGVlYWU5MGIyODE4NTA4ZiIsInVzZXJTdGF0dXMiOjAsImJvb2tJZCI6MTg2MDQ0LCJjaGFwdGVySWQiOjEsImZvcm1hdFR5cGUiOjEsInF1YWxpdHkiOiIxIiwiY29udGVudFR5cGUiOjIsImxpbWl0Q29udHJvbCI6ZmFsc2UsImJvb2tMaXN0S2V5IjpudWxsfQ%3D%3D&p8=7139fkjhl3d3k0m5t406ivvvva&p9=eyJ1c2VySWQiOiJmYTU4ZWUzNDNjZjA1M2U0MGVlYWU5MGIyODE4NTA4ZiIsInVzZXJTdGF0dXMiOjAsImJvb2tJZCI6MTg2MDQ0LCJjaGFwdGVySWQiOiJuIiwiZm9ybWF0VHlwZSI6MSwicXVhbGl0eSI6IjEiLCJjb250ZW50VHlwZSI6MiwibGltaXRDb250cm9sIjpmYWxzZSwiYm9va0xpc3RLZXkiOm51bGx9&p10=2&p15=0&p16=0&p19=0&p20=4839c607-ca9c-4c6b-b793-64d0eaa65440&p21=0&p23=0" 10 DEAD_LINK_TEXT = "前のページに戻り、再読み込み後、もう一度お試しください。" 11 12 13 async def visit_manga_page(client): 14 await client.navigate(URL, wait="none") 15 await client.navigate( 16 client.get_element_attribute(client.await_css(FIRST_BOOK_CSS), "href"), 17 wait="none", 18 ) 19 await client.navigate( 20 client.get_element_attribute(client.await_css(READ_FREE_CSS), "href"), 21 wait="none", 22 ) 23 24 25 @pytest.mark.only_platforms("android") 26 @pytest.mark.asyncio 27 @pytest.mark.without_interventions 28 async def test_disabled_dead_link(client): 29 await client.navigate(OUTDATED_LINK_URL, wait="none") 30 assert client.await_text(UNSUPPORTED_TEXT, is_displayed=True) 31 assert not client.find_text(DEAD_LINK_TEXT, is_displayed=True) 32 33 34 @pytest.mark.only_platforms("android") 35 @pytest.mark.asyncio 36 @pytest.mark.without_interventions 37 async def test_disabled(client): 38 await visit_manga_page(client) 39 assert client.await_text(UNSUPPORTED_TEXT, is_displayed=True) 40 assert not client.find_css(SUPPORTED_CSS, is_displayed=True) 41 42 43 @pytest.mark.only_platforms("android") 44 @pytest.mark.asyncio 45 @pytest.mark.with_interventions 46 async def test_enabled_dead_link(client): 47 await client.navigate(OUTDATED_LINK_URL, wait="none") 48 assert client.await_text(DEAD_LINK_TEXT, is_displayed=True) 49 assert not client.find_text(UNSUPPORTED_TEXT, is_displayed=True) 50 51 52 @pytest.mark.only_platforms("android") 53 @pytest.mark.asyncio 54 @pytest.mark.with_interventions 55 async def test_enabled(client): 56 await visit_manga_page(client) 57 assert client.await_css(SUPPORTED_CSS, is_displayed=True) 58 assert not client.find_text(UNSUPPORTED_TEXT, is_displayed=True)