我试过这个代码:driver.get('https://www.bungol.ca/map/location/scarborough/?')
time.sleep(3)
refresh_count = 0
while True:
try:
driver.refresh()
# WebDriverWait(driver, 120).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".gm-style > iframe:nth-child(2)")))
el = driver.find_element_by_css_selector(".gm-style > iframe:nth-child(2)")
assert el.is_displayed()
refresh_count += 1
except Exception:
print("Refresh count = " + str(refresh_count))
结果是:
^{pr2}$
iframe不在{}的0、43、44、。第一次失败是因为第一次加载时间太长。然后很好,我决定通过将Chrome切换到移动版本来模拟慢速连接。然后它就相对地失败了。在
然后我设置了WebDriverWait:while True:
try:
driver.refresh()
WebDriverWait(driver, 120).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".gm-style > iframe:nth-child(2)")))
el = driver.find_element_by_css_selector(".gm-style > iframe:nth-child(2)")
assert el.is_displayed()
refresh_count += 1
except Exception:
print("Refresh count = " + str(refresh_count))
它没有引发任何异常。所以你可以使用EC.presence_of_element_...