元素不可交互,即使元素在浏览器中
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)
只需像这样单击弹出窗口,您的文本搜索栏也使用了错误的输入标签。
我正在编写一个从 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)
只需像这样单击弹出窗口,您的文本搜索栏也使用了错误的输入标签。