在selenium python中仅等待一个元素加载

mklgxw1f  于 2023-01-20  发布在  Python
关注(0)|答案(1)|浏览(139)

有没有一种方法,我只需要等待一个元素加载到一个网站,他们去另一个使用 selenium ?
我爬一个网站,需要太长的时间来加载一切,但我需要的信息只是一个文本,这是加载的第一件事。
我在尝试这样的方法:

df = pd.read_csv("file.csv") 
wait =  WebDriverWait(driver, 1)

for site in df.site: 
    driver.get(site)

    search = wait.until(EC.visibility_of_any_elements_located((By.XPATH, '//div[@itemprop="recipeInstructions"]//span[@tabindex="0"]')))
    search = "".join(list(map(lambda x: x.text+"---",search)))

    if(search):
        driver.execute_script("window.stop();")

    print(search)
tuwxkamq

tuwxkamq1#

您只需要等待该特定元素的可见性。
因此,如果//div[@itemprop="recipeInstructions"]//span[@tabindex="0"]是该特定元素的unique定位器,则可以使用如下代码:

wait = WebDriverWait(driver, 30)

for site in df.site: 
    driver.get(site)
    text_you_want_to_get_is = wait.until(EC.visibility_of_element_located((By.XPATH, '//div[@itemprop="recipeInstructions"]//span[@tabindex="0"]'))).text

相关问题