Selenium driver's page source different than browser
어제 뭐좀만들라하는데 셀레늄 find_element 가 안먹히는거임
보통 요래 글자있는거
1
2
3
4
5
6
7
|
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
options = webdriver.ChromeOptions()
browser = webdriver.Chrome(ChromeDriverManager().install(), options=options)
browser.get('https://www.naver.com/')
browser.find_element_by_xpath(".//*[contains(text(), '사전')]").text
|
cs |
요래하면 잘되는데
얘는
1
2
3
4
5
6
7
|
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
options = webdriver.ChromeOptions()
browser = webdriver.Chrome(ChromeDriverManager().install(), options=options)
browser.get('https://license.korcham.net/')
browser.find_element_by_xpath(".//*[contains(text(), '종목소개')]").text
|
cs |
요래하니까 개체를 못찾는다고 에러뜸
분명 눈에 보이는데
혹시몰라서 리퀘스트해보니까
1
2
3
4
|
import requests
request_url = 'https://license.korcham.net/'
print(requests.get(request_url).text)
|
cs |
뎃?
왜 이상한걸 갖고오노
글자 찾아보니까 얘도 여기 있긴한데
그뭐라해야되나 구역이다르더라
내가 찾아야 되는 객체는 밑에 프레임셋에 있는데
셀레늄은 자꾸 위에서 대가리에서만 객체를 찾음
1
|
driver.switch_to.frame(driver.find_element_by_css_selector(css_selector))
|
cs |
이럴땐 이렇게 객체찾기전에 먼저 프레임 전환해줘야된다함
됨
참고 - https://stackoverflow.com/questions/28723143/function-for-switching-frames-in-python-selenium