from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# 최신 크롬 드라이버 설치
driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(), options=options)
driver.get(url)
driver.implicitly_wait(10)
...
driver.find_element(By.LINK_TEXT, "다음").is_displayed()
or
driver.find_element(By.PARTIAL_LINK_TEXT, "다음").is_displayed()
# OUTPUT : True or False
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://chancoding.tistory.com/199")
# wait until someid is clickable
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID, 'someid')))
EC.title_is(...)
EC.title_contains(...)
EC.presence_of_element_located(...)
EC.visibility_of_element_located(...)
EC.visibility_of(...)
EC.presence_of_all_elements_located(...)
EC.text_to_be_present_in_element(...)
EC.text_to_be_present_in_element_value(...)
EC.frame_to_be_available_and_switch_to_it(...)
EC.invisibility_of_element_located(...)
EC.element_to_be_clickable(...)
EC.staleness_of(...)
EC.element_to_be_selected(...)
EC.element_located_to_be_selected(...)
EC.element_selection_state_to_be(...)
EC.element_located_selection_state_to_be(...)
EC.alert_is_present(...)
selenium 'Options' 에 대한 정보를 업데이트 해주세요.
드디어 찾았다.
일정 시간 동안만 페이지 로딩을 시도해본 후 완료하지 못한 경우 그대로 에러 레이즈.
아래 코드는 다음페이지로이동하는 링크 텍스트 ('>')가 등장하면 클릭하는 단순한 코드인데 각 페이지 로딩시마다 단 10초만 대기하는 코드입니다. 이것을 이용해 특정 엘리먼트가 로딩되지 않아서 불필요하게 대기하는 시간을 줄일 수 있습니다.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from optparse import OptionParser
from selenium import webdriver
import selenium.webdriver.chrome.service as Service
from selenium.webdriver.chrome.options import Options
import time
options = Options()
driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(), desired_capabilities=capabilities)
# driver.set_page_load_timeout(10)
url = f"https://torrentqq238.com/search?q=영화"
driver.get(url)
driver.set_page_load_timeout(10)
time.sleep(0.5)
while True:
# Move to next page
try:
driver.find_element(By.LINK_TEXT, ">").click()
except Exception as e:
print(e)
break