当前位置: 首页 > 知识库问答 >
问题:

Selenium Webdriver:-搜索选项的元素不可交互异常

荆弘伟
2023-03-14

我试图用值“fab”填充搜索输入类型框,然后我想用该关键字显示下一个url,但由于元素不可交互,我得到了这个错误。我怎样才能解决这个问题?

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome(executable_path='C:\\Users\\Mansi Dhingra\\Downloads\\chromedriver')
driver.get("https://www.thenational.ae/search?q=")
print(driver.title)
driver.implicitly_wait(10)
search_bar = driver.find_element_by_xpath('//input[@name="q"]')
print(search_bar)
search_bar.clear()
search_bar.send_keys("fab")
search_bar.send_keys(Keys.RETURN)
print(driver.current_url)
driver.close()

错误:-

回溯(最近一次调用):文件“C:/Users/Mansi Dhingra/Desktop/Projects/api/news/news\u python.py”,第10行,在搜索栏中。clear()文件“C:\Users\Mansi Dhingra\Desktop\Projects\api\venv\lib\site packages\selenium\webdriver\remote\webelement.py”,第95行,在clear self中_执行(Command.CLEAR\u ELEMENT)文件“C:\Users\Mansi Dhingra\Desktop\Projects\api\venv\lib\site packages\selenium\webdriver\remote\webelement.py”,第633行,执行返回self_父母亲执行(命令,参数)文件“C:\Users\Mansi Dhingra\Desktop\Projects\api\venv\lib\site packages\selenium\webdriver\remote\webdriver.py”,第321行,执行self。错误处理程序。检查响应(响应)文件“C:\Users\Mansi Dhingra\Desktop\Projects\api\venv\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第242行,在检查响应引发异常类(消息、屏幕、堆栈跟踪)selenium中。常见的例外情况。ElementNotInteractitableException:消息:元素不可交互(会话信息:chrome=81.0.4044.92)

共有1个答案

周玺
2023-03-14

每当找到webelement但还没有准备好交互时,webdriver就会抛出element not顽固异常。

1.大多数情况下,当元素位于页面底部时,它就会出现,所以可以通过向下滚动页面来访问它。您可以使用Action类滚动到该元素

WebElement element = driver.findElement(By.id("my-id"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
## actions.click();
actions.perform();

2.有时我们需要等待几秒钟才能访问web元素,在这种情况下,我们可以添加wait语句。

wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID, 'someid')))
 类似资料:
  • 问题内容: 我的网站上有一个选择控件。我正在使用页面对象与页面进行交互。如果我这样做(在我的课程下的前两行和我的方法中) 它以空指针失败。我也尝试了没有。 现在,如果我在我的方法中执行此操作,则一切正常,然后选择正确的项目 这是该控件的实际网页摘要(已编辑以保护无辜者) 让我说我可以解决我的问题, 但是 我不明白为什么“ 正常 ”路径无法正常工作。 问题答案: 那是因为该类具有以下构造函数: 见J

  • 我试图登录到beeradvocate.com抓取(抓取)一些啤酒数据。我试过硒,但失败了。 这是html 我尝试使用名称、值和类,但一切都失败了。我最后一次尝试Xpath,但也失败了。 网站和检查 我的代码: 我已经使按钮工作: 然而,我需要能够执行发送_键来输入id和pw来登录。。。有人知道吗?

  • 问题内容: 在下面的代码中,我无法在密码字段中发送密码密钥,我尝试单击该字段,清除该字段并发送密钥。但是现在可以使用任何一种方法。但是如果我调试和测试它的工作 问题答案: 尝试将隐式等待时间设置为大约10秒。 或设置一个明确的等待。显式等待是您定义的代码,用于等待特定条件发生后再继续执行代码。您的情况就是密码输入字段的可见性。(感谢ainlolcat的评论) 说明 :硒无法找到该元素的原因是因为密

  • 我是新的Selenium C#NUnit。我跟着一行代码跑了 var wait=new WebDriverWait(驱动程序,TimeSpan.FromSeconds(30));等待直至(d)= 我得到了以下消息:消息:OpenQA. Selenium。元素不可交互(会话信息:chrome=89.0.4389.114)堆栈跟踪:远程WebDriver。Unpack AndThrowOnError(

  • 我有两个输入文本 通过打印元素标题,我确认了第一个和第二个输入元素都是可访问的。到目前为止,我尝试了setAttribute,executescript……但没有一个有效(或者我做了一些错误)(也许,它可能对谷歌chrome自动更新有作用?这是我现在唯一能想到的)

  • 我试图得到某个产品的评论,但它返回一个错误。 我的代码: 它返回:硒。常见的例外。ElementNotInteractitableException:消息:元素不可交互 你能告诉我该怎么办吗?