【发布时间】:2019-09-19 15:07:16
【问题描述】:
我有一个 ID 列表,并希望在 XPath 中动态传递这些 ID。以下是我正在使用的代码:
hd_DescText=''
for HD_IdValue in CT_3_row_IDs:
path=".//tr[@id='" + HD_IdValue + "']/td[2]/table/tbody/tr/td[3]/div/font"
path=str(path)
print(path)
hd_DescText=browser.find_element_by_xpath(path).get_attribute("innerHTML")
print(hd_DescText)
#contains(@id,'"+ HD_IdValue + "')
虽然 print(path) 在执行此代码时给出了确切的路径。我收到以下错误:
NoSuchElementException:消息:没有这样的元素:无法定位 元素: {"method":"xpath","selector":".//tr[contains(@id,'tr_m_1570_1025516')]/td[2]/table/tbody/tr/td[3]/div/font" }
【问题讨论】:
-
您添加了等待吗?您是否检查过您想要的元素是否在
IFRAME内?您是否使用浏览器开发工具验证了 XPath 是否确实定位了元素?如果没有指向页面的链接或更多信息,我们无法真正回答这个问题。 -
我必须在哪里添加等待?所需的元素不在 IFRAME 中。 XPath 正在使用浏览器开发工具定位元素。
-
您会为您的查找添加等待。通常最好在触摸页面上的任何内容之前添加等待,以防加载速度比平时慢或无法立即使用。见the docs
标签: python-3.x selenium-webdriver