Python 如何点击多个子类别,得到这个错误按钮">...</a>

我已经通过 X PATH 运行了 selenium 并点击了 2 个子类别,这些子类别已经是按钮,现在我再次收到上面的错误 -

ole="button">... 在点 (555, 55) 处不可点击。其他元素会收到点击:...(会话信息:chrome=80.0.3987.163)

我的代码看起来像这样

"#More 常见问题页面子类别 time.sleep(3)

WaysToWatch = driver.find_element_by_xpath('//*[@id="main"]/div/div/section/div/div[2]/a')

WaysToWatch.click()

“#Set-pin -这个不想工作

时间.sleep(5)

SetPin = driver.find_element_by_xpath('//*[@id="main"]/div/div/section/div/div[3]/a')

SetPin.click()

我将不胜感激,因为我有很多需要通过的修复


慕少森
浏览 83回答 3
3回答

aluckdog

您可以使用 javascript 单击按钮:SetPin = driver.find_element_by_xpath('//*[@id="main"]/div/div/section/div/div[3]/a')script = 'arguments[0].click();'driver.execute_script(script , SetPin)这将允许您单击一个元素,即使它前面有另一个元素,但它不会因此模拟实际的用户体验。有时,您会希望显示另一个元素将收到点击的错误。此外,最佳实践是使用等待来帮助防止在元素可用之前与元素交互出现问题。你可以这样做:from selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitwait = WebDriverWait(driver, 10)locator = '//*[@id="main"]/div/div/section/div/div[3]/a'SetPin = wait.until(EC.presence_of_element_located(By.XPATH, locator))script = 'arguments[0].click();'driver.execute_script(script , SetPin)

白衣非少年

请使用 javascript click 找到以下答案,或者您也可以尝试使用 ActcionChains&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; element = WebDriverWait(driver, 30).until(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EC.element_to_be_clickable((By.XPATH, '//*[@id="main"]/div/div/section/div/div[3]/a')))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; driver.execute_script("arguments[0].click();", element)或者element = WebDriverWait(driver, 30).until(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EC.element_to_be_clickable((By.XPATH, '//*[@id="main"]/div/div/section/div/div[3]/a')))&nbsp; &nbsp; &nbsp;ActcionChains(driver).move_to_element(element).click().perform()注意: 将以下 imorts 添加到您的解决方案中from selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import By

PIPIONE

driver.find_element_by_tag_name('body').send_keys(Keys.HOME)使用 send_keys(Keys.HOME) 向上滚动到页面顶部
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python