TIL
Playwright 작성해보기 w/ Python
아람2
2025. 2. 18. 19:08
반응형
Playwright 로 감별마켓 홈 화면에서 도깨비 시장 제일 첫번째 컨텐츠 진입하여
상품 구매하기 버튼 선택 > 네이버쇼핑 화면으로 이동하고 상품 이름 긁어오는 것까지 진행해봤다
sync 로 진행했는데 다음에는 async 로도 해봐야지
locator 가져오는 거를 좀 더 알아봐야겠다
https://playwright.dev/docs/locators
Locators | Playwright
Introduction
playwright.dev
import re
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("https://www.gambyul.com/")
# "도깨비 시장" 텍스트가 포함된 div 클릭
# page.locator("div").filter(has_text=re.compile(r"^도깨비 시장$")).click()
paldo = page.locator("div >> text=/도깨비 시장/")
# ".v-responsive__content" 첫 번째 요소 클릭
page.locator(".v-responsive__content").first.click()
title_element = page.locator('xpath=//*[@id="header"]/div[2]')
print(title_element.text_content())
# 팝업 대기 및 "구매하기" 버튼 클릭
with page.expect_popup() as page1_info:
page.get_by_role("button", name="구매하기").click()
page1 = page1_info.value
page_title = page1.locator('xpath=//*[@id="content"]/div/div[2]/div[2]/fieldset/div[1]/div[1]')
print(page_title.text_content())
# 종료
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
반응형