Python 如何通过XPATH查找元素(已使用控制台找到)

Python 如何通过XPATH查找元素(已使用控制台找到),python,selenium,xpath,webautomation,Python,Selenium,Xpath,Webautomation,我正在使用Edge浏览网页(但Chrome也可以),需要单击一个元素,该元素会删除一个菜单,然后在该菜单上选择一个项目 Python和Selenium在站点上查找按钮时遇到问题。这是一个和 格式化HTML也会给我带来一些问题,但如果有帮助的话,这里就是: <div id="ext-comp-1051-targetEl" class="x-box-target" role="presentation" style="wid

我正在使用Edge浏览网页(但Chrome也可以),需要单击一个元素,该元素会删除一个菜单,然后在该菜单上选择一个项目

Python和Selenium在站点上查找按钮时遇到问题。这是一个和

格式化HTML也会给我带来一些问题,但如果有帮助的话,这里就是:

<div id="ext-comp-1051-targetEl" class="x-box-target" role="presentation" style="width: 995px;"><a class="x-btn alloy-nav-item x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-plain-toolbar-small x-noicon x-btn-noicon x-btn-plain-toolbar-small-noicon" hidefocus="on" unselectable="on" tabindex="0" id="button-1054" style="margin: 0px; right: auto; left: 0px; top: 0px;"><span id="button-1054-btnWrap" role="presentation" class="x-btn-wrap x-btn-arrow x-btn-arrow-right" unselectable="on"><span id="button-1054-btnEl" class="x-btn-button" role="presentation"><span id="button-1054-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on">Research</span><span role="presentation" id="button-1054-btnIconEl" class="x-btn-icon-el  " unselectable="on" style=""></span></span></span></a><a class="x-btn alloy-nav-item x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-plain-toolbar-small x-noicon x-btn-noicon x-btn-plain-toolbar-small-noicon" hidefocus="on" unselectable="on" tabindex="0" id="button-1064" style="margin: 0px; right: auto; left: 104px; top: 0px;"><span id="button-1064-btnWrap" role="presentation" class="x-btn-wrap x-btn-arrow x-btn-arrow-right" unselectable="on"><span id="button-1064-btnEl" class="x-btn-button" role="presentation"><span id="button-1064-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on">FOT/ACATS</span><span role="presentation" id="button-1064-btnIconEl" class="x-btn-icon-el  " unselectable="on" style=""></span></span></span></a><a class="x-btn alloy-nav-item x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-plain-toolbar-small x-noicon x-btn-noicon x-btn-plain-toolbar-small-noicon" hidefocus="on" unselectable="on" tabindex="0" id="button-1070" style="margin: 0px; right: auto; left: 226px; top: 0px;"><span id="button-1070-btnWrap" role="presentation" class="x-btn-wrap x-btn-arrow x-btn-arrow-right" unselectable="on"><span id="button-1070-btnEl" class="x-btn-button" role="presentation"><span id="button-1070-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on">Financials</span><span role="presentation" id="button-1070-btnIconEl" class="x-btn-icon-el  " unselectable="on" style=""></span></span></span></a><a class="x-btn alloy-nav-item x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-plain-toolbar-small x-noicon x-btn-noicon x-btn-plain-toolbar-small-noicon" hidefocus="on" unselectable="on" tabindex="0" id="button-1080" style="margin: 0px; right: auto; left: 334px; top: 0px;"><span id="button-1080-btnWrap" role="presentation" class="x-btn-wrap x-btn-arrow x-btn-arrow-right" unselectable="on"><span id="button-1080-btnEl" class="x-btn-button" role="presentation"><span id="button-1080-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on">Reconciliation</span><span role="presentation" id="button-1080-btnIconEl" class="x-btn-icon-el  " unselectable="on" style=""></span></span></span></a><a class="x-btn alloy-nav-item x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-plain-toolbar-small x-noicon x-btn-noicon x-btn-plain-toolbar-small-noicon" hidefocus="on" unselectable="on" tabindex="0" id="button-1096" style="margin: 0px; right: auto; left: 466px; top: 0px;"><span id="button-1096-btnWrap" role="presentation" class="x-btn-wrap x-btn-arrow x-btn-arrow-right" unselectable="on"><span id="button-1096-btnEl" class="x-btn-button" role="presentation"><span id="button-1096-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on">Maintenance</span><span role="presentation" id="button-1096-btnIconEl" class="x-btn-icon-el  " unselectable="on" style=""></span></span></span></a><a class="x-btn alloy-nav-item x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-plain-toolbar-small x-noicon x-btn-noicon x-btn-plain-toolbar-small-noicon" hidefocus="on" unselectable="on" tabindex="0" id="button-1103" style="margin: 0px; right: auto; left: 591px; top: 0px;"><span id="button-1103-btnWrap" role="presentation" class="x-btn-wrap x-btn-arrow x-btn-arrow-right" unselectable="on"><span id="button-1103-btnEl" class="x-btn-button" role="presentation"><span id="button-1103-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on">Productivity Tools</span><span role="presentation" id="button-1103-btnIconEl" class="x-btn-icon-el  " unselectable="on" style=""></span></span></span></a><a class="x-btn alloy-nav-item x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-plain-toolbar-small x-noicon x-btn-noicon x-btn-plain-toolbar-small-noicon" hidefocus="on" unselectable="on" tabindex="0" id="button-1106" style="margin: 0px; right: auto; left: 744px; top: 0px;"><span id="button-1106-btnWrap" role="presentation" class="x-btn-wrap x-btn-arrow x-btn-arrow-right" unselectable="on"><span id="button-1106-btnEl" class="x-btn-button" role="presentation"><span id="button-1106-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on">Admin</span><span role="presentation" id="button-1106-btnIconEl" class="x-btn-icon-el  " unselectable="on" style=""></span></span></span></a><div class="x-component x-box-item x-toolbar-item x-component-default" id="tbfill-1053" style="margin: 0px; right: auto; left: 828px; width: 125px; top: 13px;"></div><div class="x-component alloy-icon settings-btn x-box-item x-toolbar-item x-component-default" id="component-1116" style="right: auto; left: 961px; margin: 0px; top: 0px;"><i class=" alloy-icon-cog alloy-icon-lg alloy-icon-over"></i></div></div>
我得到的错误是:

NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//div/div/span/div/div/div/div/a[4]"}
  (Session info: MicrosoftEdge=91.0.864.41)
NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='button-1080']"}
  (Session info: MicrosoftEdge=91.0.864.41)

由于该站点和我的代码与工作相关,我有一些问题分享得太多了,但我非常确定到目前为止的代码是正确的。

听起来您需要使用
显式等待

如果
对账
您想
单击
打开,我建议使用
链接文本
部分链接文本

wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT , 'Reconciliation')))
element.click()
导入:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
PS:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

首先转到开发人员工具(按F12键),然后导航到“元素”部分并执行CTRL+F,然后在搜索栏中搜索此xpath
//span[text()=“协调”]
如果只有一个条目,那么您应该能够继续执行上述代码。

您是否等待元素的存在被定位:
WebDriverWait(驱动程序,10)。直到(EC.presence\u of\u element\u located((By.ID,“ext-comp-1051-targetEl”))
?是。对不起,这是一个很好的问题。它已经更新了。你能共享到该网页的链接吗?Prophet-我不能共享链接。这是一个供应商的网站,背后的登录。。。对不起,好吧。。。这太令人沮丧了。我一直在等待找到该项目,但将其更改为等待。直到(EC.element_)变为可点击(…),效果很好。它总是很小的…谢谢!!!