我还有一个关于ElementNotInteractableException: Message: element not interactable
我正在迈入python的第一步(尝试启动质量检查自动化路线(多年以来一直进行人工质量检查))。因此,我尝试在网络上查找此内容,但没有找到适合我的答案。
说明(如果需要,请跳过):我正在尝试运行一个简单的代码来索取MTG卡,然后寻找其价格(在此脚本的后续版本中,您将能够从要查询的页面列表中进行选择)
代码:
from selenium import webdriver
from time import sleep
from xpaths import *
card = input('What card are you looking for?')
driver = webdriver.Chrome()
driver.get(url)
searchBox = driver.find_element_by_xpath(searchBox)
sleep(1)
searchBox.send_keys(card)
无论我尝试什么(睡觉,等待,单击元素),我总是得到相同的响应
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
(顺便说一句,我正试图在starcitygames.com中搜索卡片)
任何帮助将不胜感激,请记住,这是我第一次真正的编码尝试。
编辑:
我正在通过元素searchBox
= xpath
searchBox = '//*[@id=\"search_query\"]'
谢谢!
答案 0 :(得分:0)
ElementNotInteractableException当找到一个元素时发生,但是您不能与之交互。这可能由于各种原因而发生,例如元素不可见或不显示,元素不在屏幕上或元素在另一个元素后面或隐藏。请尝试以下一些操作。
这看起来是一个动态生成的元素,因此可以使用第二种方法直接与DOM交互。以下命令使用Java语法,您可以研究相同的相关性并将其应用于python。
WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.until(ExpectedConditions.visibilityOf(element));
wait.until(ExpectedConditions.elementToBeClickable(element));
JavascriptExecutor javascript = (JavascriptExecutor) driver;
javascript.executeScript("var element = document.querySelector('locator'); element.value = 'whatever';")