I can't click the "Span 1" through selenium web driver. this is inspect element from the web :
<div class="m-menu__subnav siak_menu_lm01" data-cek="02">
<ul class="m-menu__content">
<li class="m-menu__item">
<h3 class="m-menu__heading m-menu__toggle">
<i class="m-menu__link-bullet m-menu__link-bullet--line m--visible-tablet-and-mobile-table-cell">
<span></span>
</i>
<span class="m-menu__link-text">AA</span>
<i class="m-menu__ver-arrow la la-angle-right"></i>
</h3>
<ul class="m-menu__inner">
<li class="m-menu__item" m-menu-link-redirect="1" aria-haspopup="true">
<a href="dafduk/wni/dataKeluarga/searchList" class="m-menu__link ajaxify" data-cek="020101" data-target="siakContent" data-hidden="siakContentHandlebar" data-server="true" data-refresh="m_header_menu_default">
<i class="m-menu__link-bullet m-menu__link-bullet--dot m--visible-tablet-and-mobile-table-cell">
<span></span>
</i>
<span class="m-menu__link-text">Span 1</span>
</a>
</li>
<li class="m-menu__item" m-menu-link-redirect="1" aria-haspopup="true">
<a href="dafduk/wni/biodataEktp/searchList" class="m-menu__link ajaxify" data-cek="020102" data-target="siakContent" data-hidden="siakContentHandlebar" data-server="true" data-refresh="m_header_menu_default">
<i class="m-menu__link-bullet m-menu__link-bullet--dot m--visible-tablet-and-mobile-table-cell">
<span></span>
</i>
<span class="m-menu__link-text">Span 2</span>
</a>
</li>
</ul>
</li>
<li class="m-menu__item">
<h3 class="m-menu__heading m-menu__toggle">
<i class="m-menu__link-bullet m-menu__link-bullet--line m--visible-tablet-and-mobile-table-cell">
<span></span>
</i>
<span class="m-menu__link-text">BB</span>
<i class="m-menu__ver-arrow la la-angle-right"></i>
</h3>
<ul class="m-menu__inner">
<li class="m-menu__item" m-menu-link-redirect="1" aria-haspopup="true">
<a href="dafduk/oa/dataKeluarga/searchList" class="m-menu__link ajaxify" data-cek="020201" data-target="siakContent" data-hidden="siakContentHandlebar" data-server="true" data-refresh="m_header_menu_default">
<i class="m-menu__link-bullet m-menu__link-bullet--dot m--visible-tablet-and-mobile-table-cell">
<span></span>
</i>
<span class="m-menu__link-text">Span 3</span>
</a>
</li>
<li class="m-menu__item" m-menu-link-redirect="1" aria-haspopup="true">
<a href="dafduk/oa/biodataEktp/searchList" class="m-menu__link ajaxify" data-cek="020202" data-target="siakContent" data-hidden="siakContentHandlebar" data-server="true" data-refresh="m_header_menu_default">
<i class="m-menu__link-bullet m-menu__link-bullet--dot m--visible-tablet-and-mobile-table-cell">
<span></span>
</i>
<span class="m-menu__link-text">Span 4</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
I try to use this code :
clickSpan = driver.find_element("xpath",'//span[text()="Span 1"]')
clickSpan.click()
but that doesn't work, i get this error :
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <span class="m-menu__link-text">...</span> is not clickable at point (713, 175). Other element would receive the click: <div class="blockUI blockOverlay" style="z-index: 99999; border: none; margin: 0px; padding: 0px; width: 100%; height: 100%; top: 0px; left: 0px; background-color: rgb(0, 0, 0); opacity: 0.03; cursor: wait; position: absolute;"></div>
I am sorry, I am new to this selenium webdriver things. Can anyone help me? I really appreciate your help!
The below error message:
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <span class="m-menu__link-text">...</span> is not clickable at point
suggests that the desired element cannot be clicked as some other element is intercepting the click.
In such cases, you can try below ways to resolve it.
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Span 1']"))).click()
Imports:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
time.sleep(5)
clickSpan = driver.find_element(By.XPATH, "//span[text()='Span 1']")
ActionChains(driver).move_to_element(clickSpan).click().perform()
Imports:
from selenium.webdriver import ActionChains
execute_script()
: NOTE: Use this option as a last resort. Using Javascript
to perform click()
operation is not an ideal way, as it won't imitate human actions.time.sleep(5)
clickSpan = driver.find_element(By.XPATH, "//span[text()='Span 1']")
driver.execute_script("arguments[0].click();", clickSpan)
Imports:
import time