首页 > 解决方案 > Python Selenium 显式等待 + 预期条件不起作用

问题描述

我正在从通过 AJAX 加载的表中抓取数据的网站。该网站速度缓慢且不一致,因此有时我必须等待 <5 秒才能加载表格,而其他时候我必须等待 25 - 30 秒。我正在迭代数百个过滤表格的项目,一旦加载,我去下一个项目。

显式等待/预期条件的功能似乎不像我预期的那样表现,并想知道是否有人可能有一些见解。

我已经尝试了很多方法来解决这个问题,每次运行它时我似乎都有不同的异常。

第一个片段是继续尝试直到找到元素。我想继续运行,直到页面完全加载并找到元素。问题是,页面仍在加载中,还没有找到元素,但它仍然抛出异常。

    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

标签: pythonseleniumwaitexplicit

解决方案


推荐阅读