所以我一直在嘗試使用 selenium 點擊標簽中<li>HTML 上的按鈕<ul>,看起來像這樣:
...
<ul id="ulVisualization">
<li class="active" id="liMap">Map</li>
<li id="liBar" class="">Bar</li>
<li id="liLine">Line</li>
</ul>
...
我一直在使用以下命令使用 XPATH 訪問元素:
WebDriverWait(driver, 50).until(EC.presence_of_element_located((By.XPATH,"//li[@id='liBar']"))).click()
然而,由于某種我無法識別的原因,此命令無法找到/單擊該按鈕,并且該命令已超時。
我什至嘗試過:
driver.find_element_by_xpath('//li[@id="liBar"]').click()
但這也無濟于事,拋出一條錯誤訊息說 NoSuchElementException: Message:
我將不勝感激,并在此先感謝您的幫助。
編輯:
此外,我注意到當我手動單擊按鈕時,HTML 會修改為:
...
<ul id="ulVisualization">
<li class="" id="liMap">Map</li>
<li id="liBar" class="Active">Bar</li>
<li id="liLine">Line</li>
</ul>
...
顯示我稍后嘗試在 HTML 代碼中獲取的資料,在我手動單擊按鈕之前,該代碼不可用。
uj5u.com熱心網友回復:
由于您想單擊元素,請嘗試element_to_be_clickable, 而不是presence_of_element_located
WebDriverWait(driver,30).until(EC.element_to_be_clickable((By.XPATH,"//li[@id='liBar']"))).click()
確保您使用的定位器是唯一的,即 1/1。參考鏈接
并且還檢查元素是否在一個iframe或在一個shadow-root或試圖在一個中查找元素newly opened browser tab。
如果它們都不起作用,請應用一些time.sleep()并檢查它是否有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/324934.html
