我正在写一个硒测试,单击页面上的特定按钮。页面上没有其他按钮,但似乎已被阻塞,因此代码无法找到它。
我的密码
driver.maximize_window()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='save' and @name='save'][@value='View Report']"))).click()
元素的副本
<input type="submit" value="View Report" id="save" name="save" data-reportid="108">
错误
selenium.common.exceptions.ElementClickInterceptedException:消息:元素单击被拦截:元素在点(1750、770)不可单击。其他元素将获得点击:...(会话信息:chrome = 83.0.4103.116)
我认为另一个元素可能与您的元素重叠,因此您应该等待该层的隐身性。该层可以是加载框架或其他任何东西。
WebDriverWait(driver, 20).until(EC.invisibility_of_element((By.CSS_SELECTOR, "selector_for_ovelapped_layer")))
然后单击所需的元素
另外,您可以使用操作:
element = driver.find_element_by_xpath("//input[@id='save' and @name='save'][@value='View Report']")
webdriver.ActionChains(driver).move_to_element(element).click(element).perform()
您可以使用JSExecutor做到这一点:
element = driver.find_element_by_xpath("//input[@id='save' and @name='save'][@value='View Report']")
driver.execute_script("arguments[0].click();", element)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句