【发布时间】:2020-05-28 21:34:32
【问题描述】:
使用 python,我试图获取 url 上“Advances -”文本前面的数字: https://www.nseindia.com/market-data/pre-open-market-cm-and-emerge-market
我正在使用下面的 xpath:
//*[@id="livepreOpenAdv"]
但出现以下错误:
没有这样的元素:无法找到元素:{"method":"xpath","selector":"//*[@id="livepreOpenAdv"]"} (会话信息:headless chrome=83.0.4103.61)
我在 Linux (ubuntu 20.04) 中使用 chromedriver
下面是python代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
strURL="https://www.nseindia.com/market-data/pre-open-market-cm-and-emerge-market"
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver",options=options)
driver.implicitly_wait(60)
driver.get(strURL)
print("Finding element.")
try:
# advances = driver.find_element_by_id("livepreOpenAdv")
advances = driver.find_element_by_xpath('''//*[@id="livepreOpenAdv"]''').text
print(advances)
except Exception as ex:
print(ex)
driver.close()
print("closed driver")
此代码在 Windows 中运行良好。无法弄清楚这里有什么问题。
【问题讨论】:
-
您需要使用
WebDriverWait。我有时能得到39,有时我不明白。这个起点可能会有所帮助。
标签: python selenium-webdriver xpath