Selenium Python. Страница долго думает, как завершить загрузку страницы?
После того как открывается сайт, очень долго идет загрузка страницы. Я искал ответ везде, но не один не сработал. Так вот, как сделать так, чтобы через 10 секунд завершил загрузку страницы и продолжил свою роботу? Версия selenium 4.15.2
Вот код:
from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.common.by import By
from time import sleep
aliexpress_url = "https://www.aliexpress.com/item/xxxxxxxxxxxxxxxx.html"
class_price = "product-price-current"
driver = webdriver.Chrome()
driver.get(aliexpress_url)
# через 10 секунд
# ...
div_element = driver.find_element(By.XPATH, "//div[@data-sku-col='14-771']")
div_element.click()
sleep(2)
soup = BeautifulSoup(driver.page_source, "html.parser")
price = soup.find('div', {'class': class_price}).get_text().replace('грн.', '')
print(price)
Ответы (1 шт):
Плохо смотрели :)
В selenium есть метод set_page_load_timeout, который устанавливает timeout, и если установленное время проходит - selenium выбрасывает исключение TimeoutException
Вот простой пример:
from selenium.common import TimeoutException
from selenium import webdriver
driver = webdriver.Chrome()
driver.set_page_load_timeout(10)
try:
driver.get('https://www.aliexpress.com/item/xxxxxxxxxxxxxxxx.html')
except TimeoutException:
print('Дальнейшая работа с selenium')
soup = BeautifulSoup(driver.page_source, 'html.parser')
...
Если вас такой подход не устраивает (что маловероятно), то можете написать какую-то фунцию-обертку над driver.get, и поместить его в поток Thread. Если уствновленное время прошло - завершить поток, или как-то обработать результат driver и тд.