元素不可交互,即使元素在浏览器中

Element not interactable, even though element is in view of browser

我正在编写一个从 pdf 站点下载教科书的脚本,但是,当我尝试将图书输入搜索栏时出现错误

selenium.common.exceptions.ElementNotInteractableException: Message: The target element is not interactable and could not be clicked

我尝试使用 EC.element_to_be_clickable((By.XPATH, "//input[@type='text']")) 来解决这个问题 并使用 time.sleep(4) 没有任何效果,页面加载后搜索栏就在视图中,我尝试使用额外的 time.sleep() 来额外加载时间,但它仍然说该元素就在那里时不可交互

这是代码

driver.switch_to.new_window('tab')
driver.get('https://www.pdfdrive.com')
time.sleep(2)
driver.fullscreen_window()
# time.sleep(4)
EC.element_to_be_clickable((By.XPATH, "//input[@type='text']"))
bkSrch = driver.find_element(By.XPATH, "//input[@type='text']") 
bkSrch.send_keys(bookLnk)
time.sleep(2)
bkSrch.send_keys(Keys.SPACE + bookRthr)

`

我也试过先点击元素还是不行

我不知道该怎么做

试试这个:

driver.get('https://www.pdfdrive.com')
time.sleep(2)
form = driver.find_element(by=By.ID, value='form-container')
inp = elem.find_element(by=By.TAG_NAME, value="input")
search_query = "it is working!"
driver.execute_script(f"arguments[0].value='{search_query}';", inp)

您可以 运行 javascript 在这些情况下编写代码。

对于弹出窗口,您可以尝试先等待 5-10 秒 (time.sleep(5)),然后搜索关闭按钮是否存在(使用 try-except),是否存在在那里,只需找到关闭按钮并单击它。

EC.element_to_be_clickable((By.XPATH, "(//input[@type='text'])[2]"))
bkSrch = driver.find_element(By.XPATH, "(//input[@type='text'])[2]") 
bkSrch.send_keys(bookLnk)
wait = WebDriverWait(driver, 30)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,".fas.fa-times"))).click()
time.sleep(2)
bkSrch.send_keys(Keys.SPACE + bookRthr)

只需像这样单击弹出窗口,您的文本搜索栏也使用了错误的输入标签。