python - 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:消息:元素不可交互
你能告诉我该怎么做吗?
解决方案
那个元素很奇怪。即使我滚动到视图中,使用操作来单击它,或者执行 javascript 来单击它,它也不起作用。我建议只是href
从元素中获取属性并转到该 URL,使用如下所示:
driver.get(driver.find_element_by_xpath('//*[@id="pr-review-display"]/footer/div/div/a').get_attribute('href'))
推荐阅读
- visual-studio - 为什么我不能在 VS 2019 中作为 liveshare 参与者使用快速操作/重构?
- asynchronous - 相互恢复的协程
- java - 单击表格上特定行的按钮
- node.js - 分子 js 不能在使用 Nodejs 的本地服务器上工作
- javascript - 我怎样才能做到,当输入字段为空时,按钮什么也不做?
- java - Java - 用户将字符串输入布尔值时的验证
- python - Keras中基于误差百分位的自定义加权MSE损失函数
- r - 我如何在 R 中提取 RangedSummarizedExperiment 类的特定部分
- matlab - 如何隐藏轴但保留网格?
- python - 为什么在 while 循环中将 readline() 函数设置为等于自身移动到下一行?