#python #selenium #selenium-webdriver
#python #селен #selenium-webdriver
Вопрос:
Итак, вот мой запрос. Что я делал, так это то, что у меня есть набор из 2.7k записей, с которыми я выполняю некоторые операции через цикл for с ожиданиями, используя selenium в python.
for elem in list
WebDriverWait.until(20000,
EC.prescence_of_element
_located
(elem).click()....
… несколько других операций
Ожидания работают до тех пор, пока не будет записано несколько записей до 700 записей, но после этого время ожидания истекает. Idk y такое поведение происходит, даже если я пробовал с poll_frequency=10
etc, но результат остается тем же, либо он пропускает щелчок и время ожидания, либо просто время ожидания. Я знаю, что чем больше ожиданий, тем меньше срок службы драйвера, но я должен выполнить для всех записей 2.7k . Любые предложения, что может быть лучшим ожиданием, поскольку я пытался продолжать увеличивать значение ожидания драйвера, но оно все равно истекает, а иногда даже пропускает операцию щелчка и остается приостановленным на более длительное время
Комментарии:
1. Получите размер элемента. Перебирайте 700 (любое число) за раз, открывая и закрывая драйвер.
2. Не могли бы вы, пожалуйста, записать это в коде
3. @arundeepchohan www.repl.it
4. На каком веб-сайте он его тестирует.
Ответ №1:
Проблема может быть связана с таймаутом по умолчанию для каждого тестового примера в наборе. попробуйте увеличить время ожидания для каждого теста в файле конфигурации pytest (если вы используете pytest). Добавьте приведенный ниже код
[pytest]
timeout = 300
Ответ №2:
Теперь это должно выполнять 700 элементов списка одновременно, если вы хотите загрузить больше элементов со страницы, просто скажите мне.
size=len(lst)
driver = driver = webdriver.Chrome()
driver.get('url')
for position, item in enumerate(lst):
try:
print(item)
if(position%700==0 and position!=0):
driver.close()
driver = driver = webdriver.Chrome()
driver.get('url')
except:
break