Более длительное ожидание. до истечения времени ожидания в python selenium

#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