首页 > 解决方案 > ElementNotInteractableException:元素在 Selenium 中不可交互

问题描述

我正在尝试对某个产品进行评论,但它返回错误。

我的代码:

import selenium
from selenium import webdriver
chrome_path = r"C:\Users\AV\AppData\Local\Programs\Python\Python39\Scripts\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)

driver.get("https://oldnavy.gapcanada.ca/browse/product.do?pid=647076053&cid=1180630&pcid=26190&vid=1&nav=meganav%3AWomen%3ADeals%3ASale&grid=pds_0_1034_1#pdp-page-content")
driver.execute_script("window.scrollTo(0, 1000)")
import time
from time import sleep
sleep(5)
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.promoDrawer__handlebar__icon"))).click()

review = driver.find_elements_by_class_name("pr-rd-description-text")
for post in review:
    print(post.text)
    
driver.find_element_by_xpath('//*[@id="pr-review-display"]/footer/div/div/a').click()
review2 = driver.find_elements_by_class_name("pr-rd-description-text")
for post in review2:
    print(post.text)

它返回:selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互

你能告诉我该怎么做吗?

标签: pythonseleniumselenium-webdriverweb-scrapingselenium-chromedriver

解决方案


那个元素很奇怪。即使我滚动到视图中,使用操作来单击它,或者执行 javascript 来单击它,它也不起作用。我建议只是href从元素中获取属性并转到该 URL,使用如下所示:

driver.get(driver.find_element_by_xpath('//*[@id="pr-review-display"]/footer/div/div/a').get_attribute('href'))

推荐阅读