작성
·
3.2K
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
BeautifulSoup로 찾은 객체는 .click()
을 사용할 수 없습니다. .click()
메소드는 Selenium에서 제공하는 메소드로, WebElement 객체에서만 사용할 수 있습니다.
따라서, BeautifulSoup로 찾은 태그에서 클릭 이벤트를 발생시키려면 Selenium WebDriver의 find_element
메소드를 사용하여 WebElement 객체를 얻은 후에 .click()
메소드를 사용해야 합니다.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
from selenium import webdriver
from bs4 import BeautifulSoup
chrome_driver_path = 'chromedriver.exe'
browser = webdriver.Chrome(chrome_driver_path)
url = 'https://example.com'
browser.get(url)
soup = BeautifulSoup(browser.page_source, 'html.parser')
button = soup.find('button')
webdriver_element = browser.find_element_by_tag_name(str(button.name))
webdriver_element.click()
위 코드에서 soup
변수에 저장된 BeautifulSoup 객체에서 버튼 태그를 찾은 후, 이 태그를 find_element_by_tag_name
메소드를 사용하여 WebElement 객체로 변환하였습니다. 이후 .click()
메소드를 사용하여 원하는 클릭 이벤트를 발생시킬 수 있습니다.
참고로, 웹 페이지가 동적으로 로딩되는 경우, browser.page_source
메소드를 사용하여 현재 페이지의 소스코드를 가져올 때, 동적으로 로딩되는 부분은 포함되지 않을 수 있습니다. 이런 경우, browser
객체에서 다른 메소드를 사용하여 해당 영역을 불러온 후, BeautifulSoup으로 파싱하여 버튼을 찾아주어야 합니다.