Selenium 错误,即“selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互”

Selenium error namely 'selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable'

提问人:Pipal Deka 提问时间:11/5/2020 更新时间:11/5/2020 访问量:885

问:

我在尝试在 whatsapp 中自动发送消息时收到此错误。这是源代码。

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome('C:/Users/HP/Downloads/chromedriver/chromedriver.exe')
driver.get("https://web.whatsapp.com/")
wait = WebDriverWait(driver, 600)
target = 'Name of friend or group'
string = "Hello!! sent using selenium.."
x_arg = '//span[contains(@title,' + target + ')]'
group_title = wait.until(EC.presence_of_element_located((By.XPATH, x_arg)))
group_title.click()
inp_xpath = '//div[@class="input"][@dir="auto"][@data-tab="1"]'
input_box = wait.until(EC.presence_of_element_located((By.XPATH, inp_xpath)))
for i in range(100):
    input_box.send_keys(string + Keys.ENTER)
    time.sleep(1)

python-3.x selenium selenium-webdriver chrome-web-driver

评论

0赞 Abhishek Puri 11/5/2020
请添加完整的异常堆栈跟踪。这有助于我们跟踪错误。

答:

0赞 user9379281 11/5/2020 #1

当您尝试与之交互的元素不在当前服务器场的主流中时,会发生这种情况 您应该考虑更换框架:

driver.switch_to.frame(input_box)

以及何时完成

driver.switch_to.default_content()

评论

0赞 11/5/2020
这里的交互是send_keys所以在此之前要切换
0赞 Bro From Space 11/5/2020 #2

selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互 此错误意味着,当您尝试单击某个元素时,它无法交互。因此,例如,如果您首先有一个按钮的删除列表,则应打开此列表,然后单击该按钮。可能是当你group_title.click()执行此代码时,你的group_title无法交互。