【问题标题】:Python + Selenium: Unable to locate elementPython + Selenium:无法定位元素
【发布时间】:2021-07-30 09:25:40
【问题描述】:

我正在尝试找到一个标签并在我的网页上单击它。但是,我的代码不起作用:

ActionChains(driver).move_to_element(driver.find_element_by_xpath("//*[@id='tab_bd3ae39d-f956-49ab-b7bd-f13507de9351']/div[2]/div")).perform()
additionaldata_ele= driver.find_element_by_xpath("//*[@id='tab_bd3ae39d-f956-49ab-b7bd-f13507de9351']/div[2]/div").click()

HTML正文如下:

<li class="WJX1 WLV1" id="tab_015ba30c-af6c-4c9a-ac34-f77ee00805b6" role="tab" aria-controls="tabPanel_16845ddd-961b-4581-89da-a6a4e6080930" data-automation-id="tab" aria-selected="false"><div class="WGX1"></div><div class="WEX1"><div class="gwt-Label WLX1" data-automation-id="tabLabel">Additional Data</div></div></li>

我得到了错误 -

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='tab_bd3ae39d-f956-49ab-b7bd-f13507de9351']/div[2]/div"}

我猜原因是当我试图找到元素时,它没有出现在 DOM 上,所以我应该实现 WebDriverWait 直到元素可见。所以我尝试了 WebDriverWait,但也没有用。

非常感谢所有的回答和回复!

第二版: 这是网页,抱歉我不能分享链接,这是一个内部网页,需要PSW:

This is the screenshot of the page

【问题讨论】:

  • 请添加指向网页的链接并说明您试图访问的元素是什么?
  • I'm trying to locate a tab 是什么意思? - 这是否意味着元素在新选项卡或窗口中?
  • 感谢大家的cmets。这是一个内部网页,需要PSW,所以我添加了一个页面截图,希望对您有所帮助。
  • 这不是一个新窗口。它是网页上的一个标签,当我点击这个标签时,网页的一部分会被刷新并出现新的内容。

标签: python selenium


【解决方案1】:

id 看起来是动态的 - 它可能会经常更改并导致脚本不稳定。

此外,您需要等待以确保您的网页准备就绪,然后再继续。

试试这样的:

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[text()="Additional Data"]'))).click()

【讨论】:

  • 感谢您的回答!它适用于其他元素。但是,它不适用于此元素,这是错误:selenium.common.exceptions.TimeoutException: Message 我认为这是因为我的 Xpath 错误,但我不知道正确的 Xpath 是什么
  • @BigJay 这是一个很棒的免费学习资源,用于学习如何识别网络元素:testautomationu.applitools.com/web-element-locator-strategies - 投入几个小时,您就可以像专业人士一样做到这一点
  • 欣赏!非常感谢!
猜你喜欢
  • 2017-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 1970-01-01
  • 2020-08-02
  • 1970-01-01
相关资源
最近更新 更多