定位表元素与XPath在Python硒
问题描述:
我复制某一元素我想点击的XPath和获得如下:定位表元素与XPath在Python硒
//*[@id="ctl00_ctl00_ctl00_body_homebody_PageMainContent_ResultsGrid_ctl00__0"]/td[1]/a
我的代码则包含以下内容:
driver.find_element_by_id("//*[@id="ctl00_ctl00_ctl00_body_homebody_PageMainContent_ResultsGrid_ctl00__0"]/td[1]/a").click()
任何想法为什么我可能会得到这个错误:r aise exception_class(message,screen,stacktrace) selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素
答
XPATHs可能包含id
(或许多其他HTML标签),但这并不意味着该XPATH是id
是。使用:
driver.find_element_by_xpath('//*[@id="ctl00_ctl00_ctl00_body_homebody_PageMainContent_ResultsGrid_ctl00__0"]/td[1]/a').click()
它应该工作 - 假设在您的网站上的该位置有一个有效的XPATH。
此外,您对OP-//*
的评论指定了相对XPATH与绝对XPATH - 实质上意味着它始于DOM中间,而不是在多汁的东西之前用HTML进行窜改。
' “// * [@ ID =” ctl00_ctl00_ctl00_body_homebody_PageMainContent_ResultsGrid_ctl00__0 “]/TD [1] /一个”'不是在Python有效的字符串,尝试: ' '''// * [@ ID =“ctl00_ctl00_ctl00_body_homebody_PageMainContent_ResultsGrid_ctl00__0 “]/td [1]/a'''' –
它仍然找不到该元素。使用// *而不是//表格有问题吗?我尝试了两个,但我觉得它可能是一个错误 –
这是一个XPATH - 使用'driver.find_element_by_xpath'而不是'find_element_by_id' – n1c9