soup으로 검색한 버튼 또는 text를 click할때 어떻게 하나요 ?
3561
1 asked
webdriver의 find_element로 찾은 경우 .click()을 붙여주면 click이 되는데, soup으로 찾은 경우 .click()을 붙여주면 오류가 발생하네요.
click을 하려면 find_element를 써야 할까요? soup으로 찾은 객체는 click을 할 수 없을까요?
Answer 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으로 파싱하여 버튼을 찾아주어야 합니다.
selenium 업그레이드됨... 문법도 바뀜
1
286
1
2024.08.28 수요일 기준 날씨 정보 가져오기 소스코드입니다 (참고하세요 : ) )
0
230
1
24년, 부동산 퀴즈 코드입니다. 참고하세요!!
0
177
1
git hub에 push할때 user-agent가 노출되도 상관이 없나요 ?
0
185
1
selenium 관련 web push notification 제어 질문
0
569
1
print(soup.a) 태그 값이 None으로 나옵니다.
0
1177
4
웹툰 사이트 body 안에가 안불러져옵니다.
0
677
2
네이버 웹툰을 활용한 BeautifulSoup 강좌에서 인터페이스가 달라졌습나다.
0
993
1
구글 무비 강좌에서요
0
399
0
네이버 IT뉴스 화면 requets.get 에러가 발생합니다ㅜ
0
432
0
23년 2월 7일, 다음 부동산 화면이 다름
0
404
0
네이버 항공권 관련 제가 작성한 코드 조심스럽게 공유해드립니다.ㅜ
7
2525
2
bs4 활용 2-1 질문합니다.
0
505
2
csv파일 깨짐
0
313
0
url 에러? (\UXXXXXXXX escape)
0
310
0
네이버 쇼핑으로 하면 왜 결과가 안 뜰까요?
0
380
0
쿠팡대신 네이버 쇼핑에서하는데, 5개 아이템만 나옵니다.
0
366
0
쿠팡 requests에 오류가 생기네요
0
2905
1
URL 문제
0
389
0
request 설치
0
315
0
from selenium import webdriver ?
0
348
1
네이버웹툰 랭크가 안불러져요...;;
0
299
0
안녕하세요 에러문의드려요
0
216
0
안녕하세요 오류해결부탁드립니다
0
336
0

