find_element_by_xpath
与XPath表达式.//*[contains(text(), 'txt')]
一起使用,以查找包含txt
为文本的元素。
browser.find_element_by_xpath(
".//*[contains(text(), '15 Minute Stream Flow Data: USGS (FIFE)')]"
).click()
某些内容在文档加载后加载。我修改了代码以尝试10次(两次之间睡眠1秒)。
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
browser = webdriver.Firefox()
url = 'http://reverb.echo.nasa.gov/reverb/'
browser.get(url)
for i in range(10):
try:
browser.find_element_by_xpath(
".//*[contains(text(), '15 Minute Stream Flow Data: USGS (FIFE)')]"
).click()
break
except NoSuchElementException as e:
print('Retry in 1 second')
time.sleep(1)
else:
raise e