Я тестирую, как получить все результаты на странице результатов поиска, чтобы узнать, как использовать Selenium.При входе на сайт я вижу полный исходный код этой конкретной страницы только в обычном браузере, включая div для строки, которая завершает страницу.
При более длинном наборе результатов, конечно, нормальный браузер выиграл 'Так как Javascript загружался лениво, я решил найти способ для Selenium ждать, пока загрузятся все результаты.
Я основывался ниже на коде ожидания: https://selenium -python.readthedocs.io / waits.html
Следующая ошибка времени ожидания для этой конкретной страницы:
try:
element = WebDriverWait(driver,100).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "_3t0c")))
finally:
print('done with webdriver wait anyway')
Выдается ошибка:
in <module>
element = WebDriverWait(driver, 100).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "_3t0c")))
File "..longFilePath....\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
, после которой ничего не отображается Message:
РЕДАКТИРОВАТЬ: ниже ошибка отличается из-за отсутствия скобок, как указано ниже @QHarr спасибо:
in <module>
element = WebDriverWait(driver,30).until(EC.visibility_of_all_elements_located(By.CLASS_NAME, "_3t0c"))
TypeError: __init__() takes 2 positional arguments but 3 were given
Примечание: если я закомментирую этот цикл попытки, я все еще могу получить всерезультаты на этой странице.
В противном случае я попытался заставить Selenium ждать окончания класса div результатов, а также ошибку тайм-аута при тайм-ауте = 100, загрузка Selenium может быть менее чем за 20 секунд.
Но я только что попробовал с другим class = "_32mo", который, кажется, тоже имеет по одному на имя в списке, и это, видимо, не истекло.
Я новичок в Selenium и действительно новичок в веб-Соскоб, мне просто любопытно, кто-нибудь может объяснить, что может происходить?