【发布时间】:2021-05-16 07:33:00
【问题描述】:
我在运行自动化测试时尝试单击一个字段,但出现此错误:
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <input id="artistNominee010" type="checkbox" class="rock-artist-checkbox"> is not clickable at point (967, 601). Other element would receive the click: <span class="rock-artist-toggle-icon"></span>
这是我尝试访问该属性的代码行:
select_nominee = WebDriverWait(driver, 2).until(EC.presence_of_element_located((By.ID, 'artistNominee010'))).click()
这是页面的DOM结构:
<input id="artistNominee010" type="checkbox" class="rock-artist-checkbox">
<label class="rock-artist-label" for="artistNominee010">
<span class="rock-artist-photo-wrap">
<img class="rock-artist-photo" alt="" src="/images/artist-photos/nominee010.jpg"></span>
<span class="rock-desktop-hide rock-artist-name">John Doe</span>
<span class="rock-accessible-text">select John Doe</span>
<span class="rock-artist-toggle-icon"></span></label>
从网站上看,这是可点击的元素,但我无法直接选择它,因为其他元素包含相同的类名和不同的被提名者,id 是唯一的。
<span class="rock-accessible-text">select John Doe</span>
有没有办法做这样的事情:
select_nominee = WebDriverWait(driver, 2).until(EC.presence_of_element_located((By.ID, 'artistNominee010').class('rock-accessible-text')).click()
【问题讨论】:
标签: python selenium-webdriver xpath css-selectors webdriverwait