如何等待表格加载到网页上

时间:2020-08-07 15:05:10

标签: python selenium web-crawler selenium-firefoxdriver

我必须从this网站读取数据。 在我们点击页面几秒钟后,表格就会加载。

我正在使用PYTHON + SELENIUM代码以默认的延迟秒数(20)从表中读取数据,但是这太糟糕了,因为数据是动态的,我想优化到这样的程度:加载后,我应该能够阅读和处理它。

为此,我尝试等待使用以下代码加载时间元素(id-equity_timeStamp):

myElem = WebDriverWait(webdriverFire, 3).until(EC.presence_of_element_located((By.ID,'equity_timeStamp')))

但是即使这个元素的存在也不能保证数据的存在(如上所述,只是检查元素的存在而不是其中的文本)。我还考虑过使用EC.text_to_be_present_in_element((By.ID, 'equity_timeStamp')),但文本不是常量。

我知道我应该等待一些东西,但是有用的所有内容都有动态文本。

3 个答案:

答案 0 :(得分:0)

您可以尝试 visibility_of_element_located ,因为 presence_of_element_located 不保证该元素的可见性

答案 1 :(得分:0)

您还可以尝试使用implicit wait方法。当网页上的某些元素无法立即使用并且需要一些时间来加载时,这很有用。您可以查看硒文档。关于https://www.selenium.dev/documentation/en/webdriver/waits/

答案 2 :(得分:0)

要访问equity table,请使用visibility_of_element_located()并跟随css选择器。

WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"table#optionChainTable-indices")))