Skip to main content
 首页 » 编程设计

python之错误消息之元素不可交互的 Selenium webdriver

2024年09月03日39yjmyzz

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

我可以毫无问题地将数据导入 excel,但是有许多 Accordion 开关隐藏了一些我试图打开的数据。

但是我收到“元素不可交互”错误。我已经看到许多与此错误相关的类似问题,但我无法确定为什么这不起作用?

( Accordion 开关工作正常 - 但它说不可见?)

澳大利亚网站顺便说一句。

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

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) 

如有任何帮助,我们将不胜感激。