Python Selenium Явное ожидание + ожидаемые условия не работают - PullRequest
0 голосов
/ 23 октября 2018

Я очищаю веб-сайт для данных из таблицы, которая загружается через AJAX.Веб-сайт работает медленно и нестабильно, поэтому иногда мне приходится ждать <5 секунд для загрузки таблицы, в то время как в других случаях приходится ждать 25-30. Я перебираю сотни элементов, которые фильтруют таблицу, и однажды загружается,Я иду к следующему пункту.</p>

Функциональность Явных Ожиданий / Ожидаемых Условий, кажется, ведет себя не так, как я ожидал, и задавался вопросом, может ли кто-либо иметь некоторое понимание.

Я пробовал множество подходов к проблеме, и каждый раз, когда я ее запускаю, мне кажется, что у меня появляются разные исключения.

Этот первый фрагмент кода должен продолжать попытки, пока не найдет элемент.Я хочу продолжить работу, пока страница полностью не загрузится и элемент не будет найден.Проблема в том, что страница все еще загружается, а элемент еще не найден, но все равно выдается исключение.

    for s in range(0,1000):
            try:
                #Other Month Value Clicked
                wait.until(EC.visibility_of_element_located((By.XPATH, "/html/body/div[9]/div/div[2]/div[" + str(mths[x]) + "]")))
            except NoSuchElementException:
                print(".", end=".", flush=True)
                time.sleep(1)
                timePeriodVal.click()
                time.sleep(1)
                timePeriodVal.click()
                continue
            finally:
                timePeriod = (driver.find_element_by_xpath("/html/body/div[9]/div/div[2]/div[" + str(mths[x]) + "]"))
                timePeriod.click()
                #print('\nTime Period clicked')
                time.sleep(1.5)
                break
...