我已经使用python和selenium编写了一个脚本来点击谷歌地图侧边栏中列出的一些链接。单击任何项目时,附加到每个引线的相关信息将显示在右侧区域中。脚本运行正常。但是,我使用了硬编码延迟来完成这项工作。如何通过explicit wait
实现相同的延迟来消除硬编码延迟。提前谢谢。
链接到网站:website
我尝试的脚本:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
link = "replace_with_above_link"
driver = webdriver.Chrome()
driver.get(link)
wait = WebDriverWait(driver, 10)
for item in wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "[id^='rlimg0_']"))):
item.location
time.sleep(3) #wish to try with explicit wait but can't find any idea
item.click()
driver.quit()
我尝试使用wait.until(EC.staleness_of(item))
而不是硬编码延迟,但没有运气。
答案 0 :(得分:2)
如果您想等到每个clcik后显示新数据,您可以尝试下面的步骤:
for item in wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "[id^='rlimg0_']"))):
div = driver.find_element_by_xpath("//div[@class='xpdopen']")
item.location
item.click()
wait.until(EC.staleness_of(div))