我复制了我试图点击的某个元素的 xPath 并获得了以下内容:
//*[@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(消息,屏幕,堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素
最佳答案
XPATH 可能包含 id
(或许多其他 HTML 标记),但这并不意味着 id
就是 XPATH。使用:
driver.find_element_by_xpath('//*[@id="ctl00_ctl00_ctl00_body_homebody_PageMainContent_ResultsGrid_ctl00__0"]/td[1]/a').click()
它应该可以工作 - 假设您网站上的那个位置有一个有效的 XPATH。
另外,回复:您对 OP 的评论 - //*
指定相对 XPATH 与绝对 XPATH - 本质上意味着它跳过初始和标签并直接进入 DOM 的中间。
关于python - 在 Python Selenium 中通过 xPath 定位表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45473568/