ElementNotInteractableException:元素不可交互

问题描述 投票:2回答:2

我正在尝试使用硒在www.finanzen.net上搜索股票,但总是得到

ElementNotInteractableException:元素不可交互

from selenium import webdriver

import time

chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs", prefs)
chrome_options.add_argument("start-maximized")
driver = webdriver.Chrome(options=chrome_options, executable_path=r'F:\chromedriver.exe')

driver.get('https://www.finanzen.net/')
time.sleep(5)
cookie_banner_button = driver.find_element_by_xpath("//button[@onclick='cookieBannerOverlayClick();']")
cookie_banner_button.click()

search_field = driver.find_element_by_xpath("//input[@class='search-input']")


#search_field.click()
search_field.send_keys('bmw')
search_field.submit()
time.sleep(5)
driver.quit()

html-code of element

selenium
2个回答
0
投票

您使用的xpath指向两个元素,并且它所指向的第一个元素是不可交互的,这是由于您正在获取异常。为元素找到正确的xpath,请参考下面的代码:

from selenium import webdriver

import time

chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs", prefs)
chrome_options.add_argument("start-maximized")
driver = webdriver.Chrome(options=chrome_options, 
executable_path=r'F:\chromedriver.exe')

driver.get('https://www.finanzen.net/')
time.sleep(5)
cookie_banner_button = driver.find_element_by_xpath("//button[@onclick='cookieBannerOverlayClick();']")
cookie_banner_button.click()

search_field = driver.find_element_by_xpath("//div[@class='shadow']//input[@class='search-input']")
search_field.send_keys('bmw')
search_field.submit()
time.sleep(5)
driver.quit()

0
投票

要在https://www.finanzen.net/上搜索股票,您需要为element_to_be_clickable()引入WebDriverWait

© www.soinside.com 2019 - 2024. All rights reserved.