Python 错误消息-元素不可交互Selenium webdriver

Python 错误消息-元素不可交互Selenium webdriver,python,selenium,selenium-webdriver,element,Python,Selenium,Selenium Webdriver,Element,我创建了以下代码,用于从webiste提取数据并转换为excel 我将数据输入excel没有问题,但是有许多手风琴切换隐藏了一些我试图打开的数据 但是,我得到一个“元素不交互”错误。我已经看到了许多与此错误类似的问题,我无法指出为什么这不起作用 (手风琴拨动装置工作正常,但它表示不可见?) 澳大利亚网站btw 请参阅下面的完整代码和错误: from selenium import webdriver from selenium.webdriver.support.ui import WebDri

我创建了以下代码,用于从webiste提取数据并转换为excel

我将数据输入excel没有问题,但是有许多手风琴切换隐藏了一些我试图打开的数据

但是,我得到一个“元素不交互”错误。我已经看到了许多与此错误类似的问题,我无法指出为什么这不起作用

(手风琴拨动装置工作正常,但它表示不可见?)

澳大利亚网站btw

请参阅下面的完整代码和错误:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time


chrome_path =r"C:\Users\Tom\Desktop\chromedriver.exe"

d = webdriver.Chrome(chrome_path)
d.get("https://pointsbet.com.au/basketball/NCAA-March-Madness")

time.sleep(2)

d.find_element_by_xpath("""/html/body/div[1]/div[2]/sport-competition-component/div[1]/div[2]/div[1]/div/event-list/div[1]/event/div/header/div[1]/h2/a""").click()
time.sleep(2)

expandable = WebDriverWait(d, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".h2.accordion-toggle.event-name")))
expandables = d.find_elements_by_css_selector('.h2.accordion-toggle.event-name')
for item in expandables:
    item.click()


posts = d.find_elements_by_class_name("market")
for post in posts:
    print(post.text)
    with open('output.xls',mode ='a') as f:
        f.write(post.text)
        f.write('\n')

d.quit()
错误:

Traceback (most recent call last):
  File "C:\Users\Tom\Desktop\Python test\points1 - Copy.py", line 21, in <module>
    item.click()
  File "C:\Users\Tom\AppData\Roaming\Python\Python37\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Users\Tom\AppData\Roaming\Python\Python37\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\Tom\AppData\Roaming\Python\Python37\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Tom\AppData\Roaming\Python\Python37\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable
  (Session info: chrome=73.0.3683.86)
  (Driver info: chromedriver=2.43.600210 (68dcf5eebde37173d4027fa8635e332711d2874a),platform=Windows NT 10.0.17134 x86_64)
回溯(最近一次呼叫最后一次):
文件“C:\Users\Tom\Desktop\Python test\points1-Copy.py”,第21行,在
项目。单击()
文件“C:\Users\Tom\AppData\Roaming\Python37\site packages\selenium\webdriver\remote\webelement.py”,第80行,单击
self.\u执行(命令。单击\u元素)
文件“C:\Users\Tom\AppData\Roaming\Python37\site packages\selenium\webdriver\remote\webelement.py”,第633行,在\u execute中
返回self.\u parent.execute(命令,参数)
文件“C:\Users\Tom\AppData\Roaming\Python37\site packages\selenium\webdriver\remote\webdriver.py”,第321行,在execute中
self.error\u handler.check\u响应(响应)
文件“C:\Users\Tom\AppData\Roaming\Python37\site packages\selenium\webdriver\remote\errorhandler.py”,第242行,在check\u响应中
引发异常类(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.ElementNotVisibleException:消息:元素不可交互
(会话信息:chrome=73.0.3683.86)
(驱动程序信息:chromedriver=2.43.600210(68DCF5EEBDE3173D4027FA8635E332711D2874A),平台=Windows NT 10.0.17134 x8664)

任何帮助都将不胜感激。

使用
Action
类单击元素

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

d.get("https://pointsbet.com.au/basketball/NCAA-March-Madness")

WebDriverWait(d,10).until(EC.element_to_be_clickable((By.XPATH,'//h2/a[@class="ng-binding"]'))).click()


expandable = WebDriverWait(d, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".h2.accordion-toggle.event-name")))
expandables = d.find_elements_by_css_selector('.h2.accordion-toggle.event-name')
for item in expandables:
  ActionChains(d).move_to_element(item).click().perform() # item.click()



posts = d.find_elements_by_class_name("market")
for post in posts:
    print(post.text)


d.quit()

您在哪一行收到此异常完整错误现在位于原始帖子(单击元素)中。您告诉我们您在哪一行收到此异常错误,我们应该如何知道?对不起,我是新来编码的。我很确定它的第21行,你能分享一下网络屏幕的截图吗?你想用DevToolsHanks Kajal找到什么元素,效果很好。作为一个附带问题,是否有办法在循环中重复代码并在WebDriverWait(d,10)下选择第二个匹配项。直到(EC.element_to_可点击((By.XPATH,//h2/a[@class=“ng binding”]'))。单击(),因为这有助于我在任何时候收集多个匹配项的数据。我必须检查该匹配项。目前正在下班。