首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ElementNotInteractableException:元素不可交互:自升级到chromedriver 83后,元素大小为零

基础概念

ElementNotInteractableException 是 Selenium WebDriver 中的一个异常,表示尝试与页面上的某个元素进行交互时,该元素不可交互。具体到你提到的情况,自升级到 ChromeDriver 83 后,元素大小为零,这意味着该元素在页面上存在,但其尺寸为零,无法进行点击或其他交互操作。

相关优势

Selenium WebDriver 是一个强大的自动化测试工具,支持多种浏览器,能够模拟用户在浏览器中的各种操作。ChromeDriver 是 Selenium WebDriver 的一个实现,专门用于控制 Chrome 浏览器。

类型

ElementNotInteractableException 属于 Selenium WebDriver 的异常类型,表示元素不可交互。

应用场景

该异常通常出现在自动化测试中,当脚本尝试与页面上的某个元素进行交互时,如果该元素不可交互(例如,元素被遮挡、尺寸为零等),就会抛出此异常。

问题原因及解决方法

原因

  1. 元素被遮挡:页面上的其他元素可能遮挡了目标元素。
  2. 元素加载延迟:目标元素可能还未完全加载,导致其尺寸为零。
  3. CSS 样式问题:目标元素的 CSS 样式可能导致其尺寸为零。
  4. JavaScript 动态生成:目标元素可能是通过 JavaScript 动态生成的,在某些情况下可能还未完全渲染。

解决方法

  1. 等待元素加载: 使用 WebDriverWait 等待元素加载完成后再进行操作。
  2. 等待元素加载: 使用 WebDriverWait 等待元素加载完成后再进行操作。
  3. 检查元素是否被遮挡: 使用 JavaScript 检查元素是否被遮挡。
  4. 检查元素是否被遮挡: 使用 JavaScript 检查元素是否被遮挡。
  5. 调整 CSS 样式: 检查并调整目标元素的 CSS 样式,确保其尺寸不为零。
  6. 等待 JavaScript 动态生成元素: 使用 WebDriverWait 等待 JavaScript 动态生成的元素加载完成。
  7. 等待 JavaScript 动态生成元素: 使用 WebDriverWait 等待 JavaScript 动态生成的元素加载完成。

参考链接

通过以上方法,可以有效解决 ElementNotInteractableException 异常,确保自动化测试的顺利进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Selenium报错ElementNotInteractableException元素不可交互,该如何解决?

元素不可见: 页面元素可能存在于 DOM 结构中,但由于样式或其他因素,它在页面上是不可见的。元素被禁用: 元素虽然可见,但可能被设置不可交互状态(如被禁用的按钮)。...解决方法针对 ElementNotInteractableException 异常,我们可以使用以下解决方法:等待元素交互: 在尝试与元素交互之前,使用适当的等待策略等待元素变得可交互。...解决示例以下是一个示例代码,演示了如何处理 ElementNotInteractableException 异常。假设我们要点击一个按钮,但按钮可能会在页面加载后一段时间才可见。...button.click()except ElementNotInteractableException: print("按钮不可交互不可见")finally: driver.quit...总结元素不可交互异常即ElementNotInteractableException是Selenium 测试中常见的问题之一,通常是因为页面元素交互状态不符合预期。

58410

《手把手教你》系列技巧篇(四十九)-java+ selenium自动化测试-隐藏元素定位与操作(详解教程)

,隐藏元素在HTML代码中是存在的,隐藏元素主要是对于前端页面来说是不可见的。...()方法会抛异常“org.openqa.selenium.ElementNotInteractableException: element not interactable”这个报错是说元素不可见,不可以被操作...,同样的对“登录”按钮上的输入框如果隐藏了,执行输入(Sendkeys)操作也是会报“ElementNotInteractableException”。...driver.quit(); } } } 5.3运行代码 1.运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示: 2.运行代码电脑端的浏览器的动作...6.2面试提问 如果面试官想问的是定位操作隐藏元素的话,本质上说这个问题就是毫无意义的,web自动化的目的是模拟人的正常行为去操作。 如果一个元素页面上都看不到了,你人工也是无法操作的是不是?

2.7K150
  • 技术分享 | Web 控件定位与常见操作

    下面来看一个例子: 要定位的元素是百度首页的搜索输入框 [e02de23dd5d1dcf060746dc8242bb69158256c0f.png] 首先寻找 id form 的 form 元素,然后再寻找它的子元素...span,span 的 class 属性 bg s_ipt_wr quickdelete-wrap,最后找 span 的子元素 input: Python 版本 driver.find_element_by_xpath...active 的元素,然后 > 表示找 class 属性 active 的元素的子节点 Python 版本 driver.find_element_by_css_selector('.logo-big...常见操作 Selenium 常见操作有: 输入、点击、清除 关闭窗口、浏览器 获取元素属性 获取网页源代码、刷新页面 设置窗口大小 输入、点击、清除在 Selenium 中对应的方法分别是 send_keys...get_attribute('value'),元素的坐标 location,元素大小 size Python 版本 import logging from selenium import webdriver

    1.1K10

    ​技术分享 | Web 控件定位与常见操作

    下面来看一个例子: 要定位的元素是百度首页的搜索输入框 [e02de23dd5d1dcf060746dc8242bb69158256c0f.png] 首先寻找 id form 的 form 元素,然后再寻找它的子元素...span,span 的 class 属性 bg s_ipt_wr quickdelete-wrap,最后找 span 的子元素 input: Python 版本 driver.find_element_by_xpath...active 的元素,然后 > 表示找 class 属性 active 的元素的子节点 Python 版本 driver.find_element_by_css_selector('.logo-big...常见操作 Selenium 常见操作有: 输入、点击、清除 关闭窗口、浏览器 获取元素属性 获取网页源代码、刷新页面 设置窗口大小 输入、点击、清除在 Selenium 中对应的方法分别是 send_keys...get_attribute('value'),元素的坐标 location,元素大小 size Python 版本 import logging from selenium import webdriver

    1.1K30

    【UI自动化-3】UI自动化元素操作专题

    一般是对文本输入元素进行此操作,否则会报错org.openqa.selenium.ElementNotInteractableException: element not interactable void...Dimension getSize():获取并返回此元素的高度和宽度(一对整型像素值,如332,450) Rectangle getRect():呈现元素的位置和大小。...另外,还提供一些其他方法: boolean isMultiple():此select元素的multiple属性的值是否multiple?...这些方法的返回值都是WebDriver,我们可以理解driver的焦点发生了转移。因此,有一点需要留意,既然焦点转移到了新的页面上,那么想要定位原页面的元素,就要跳转回去。...下面以百度搜索例,演示显示等待的使用: import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver

    2.8K20

    探索自动化测试工具:Selenium的威力与应用

    引言自动化测试已经成为现代软件开发中不可或缺的一部分。它不仅可以提高测试的效率,还可以降低错误率,帮助团队更快地交付高质量的软件。在自动化测试工具中,Selenium一直是一个备受欢迎的选择。...这个driver对象将用于与浏览器进行交互。driver.set_window_size(1200, 900): 这行代码设置了浏览器窗口的大小宽度1200像素和高度900像素。...具体来说,它使用了By.ID选择器,并传递了一个参数 ‘kw’,这表示要查找具有ID属性值 ‘kw’ 的元素。....send_keys(‘馒头’): 一旦找到具有指定ID属性的元素(在这种情况下,是ID ‘kw’ 的元素,通常是百度搜索框),send_keys 方法被调用,将文本字符串 ‘馒头’ 输入到该元素中。...这些操作可以包括鼠标移动、点击、拖放、键盘按键等,允许您模拟用户在Web应用程序上的交互行为。行为链通常用于实现复杂的用户操作,例如鼠标悬停、拖放元素等。

    52510

    selenium基础使用-1

    Pycharman安装 3 下载压缩包安装 下载地址:https://pypi.org/project/selenium/#files 确保pip、setuptools and wheel已经安装且可用,并升级到最新版本...python -m pip install --upgrade pip setuptools wheel 下载文件完成,进入根目录下,找到setup.py文件,在终端运行开始安装命令: python...setup.py install 4 安装webdriver驱动 以Chrome浏览器例,需要先安装Chromedriver驱动: 下载地址:http://chromedriver.storage.googleapis.com...geckodriver/releasesSafarihttps://webkit.org/blog/6900/webdriver-support-in-safari-10/ selenium使用 5 示例 环境准备完成,...我们可以先做一个最简单的示例(以Chrome浏览器例): #导入selenium包 从上面的例子延伸,可以简单提取到几个常用的方法 1 获取元素 通过元素id获取find_element_by_id

    25920

    自动化测试如此容易!多语言自动化测试框架 Selenium 编程(C#篇)

    很多时候,页面不会短时间完成渲染,有些页面元素需要一段时间才能出现。在使用 WebDriver 的时候,我们也可以根据需求决定在什么时候启动自动化操作。...这样做会导致不可预测的等待时间。例如,将隐式等待设置10秒,将显式等待设置15秒,可能会导致在20秒发生超时。 流畅等待 定义了等待条件的最大时间量,以及检查条件的频率。...元素操作主要分为下面这几种: 文件上传 查询网络元素:根据提供的定位值定位元素 Web元素交互:用于操纵表单的高级指令集 定位策略:在 DOM中 标识一个或多个特定元素的方法...= driver.SwitchTo().ActiveElement(); string attr = element.GetAttribute("title"); 页面元素交互 仅有五种基本命令可用于元素的操作...是否显示 是否启用 是否被选定 获取元素标签名 位置和大小 获取元素CSS值 文本内容 获取特性或属性 在 JS 中,我们可以这样获取一个元素的值或其它属性: document.getElementById

    3.4K20

    Selenium异常集锦

    ElementNotInteractableException 即使目标Web元素存在于DOM上,但与该元素交互将击中另一个Web元素时,也会抛出此ElementNotInteractableException...ElementNotSelectableException 当目标元素存在于DOM上但由于无法选择而无法与之交互时,就会发生此Selenium异常。...ElementNotVisibleException Selenium异常的最常见类型,即使存在web元素不可见,将引发该异常。由于该元素不可见,因此无法与该元素进行任何交互。...如果在不可编辑且不可重置的Web元素上尝试执行诸如清除元素之类的操作,可能会导致这种异常的出现。...处理此异常的解决方案是使用动态XPath在循环中查找所需的元素,并在找到元素中断循环。

    5.3K20

    《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)

    . */ boolean isEnabled(); 从上边的源码中的注释可以看出isEnabled()方法是用来判断页面元素是否可操作。可操作返回true,不可操作返回false。...:element not interactable(元素不可交互)。...如下图所示: 4.当然了你也可以通过F12查看元素已经加上了不可以操作的属性,如下图所示: 5.小结 好了,今天时间也不早了,宏哥就分享到这里,感谢您耐心地阅读。...则将此测试用例的设置失败状态 //打印失败原因 Assert.fail("页面上的输入框元素未被找到!")...则将此测试用例的设置失败状态 //打印失败原因 Assert.fail("页面上的输入框元素未被找到!")

    2.1K20

    python+selenium实现Web自动化

    二、话不多说,直接开干,开始搭建自动化测试环境 这里以前在【简书】写过一篇很详细的博文,基础的小白都可以看懂,地址如下: python+selenium自动化测试环境搭建步骤(selenium环境搭建...WebDriver中 set_window_size() 方法来设置浏览器窗口的大小;maximize_window() 使打开的浏览器全屏显示。.../tools/chromedriver.exe') driver.get_url('http://www.5itest.cn/register') # 设置浏览器窗口大小 print("设置浏览器宽500...() 4.webdriver常用方法 (1) 点击、输入和清除 定位元素我们还需要对元素进行操作,常用的元素操作方法有:clear()、send_keys(value)、click() #!...) browser.find_element_by_id('su').click() time.sleep(2) browser.quit() (2) 提交 submit()方法用于提交表单,在搜索框输入关键字后

    3K30

    您需要了解的有关Selenium等待方法

    当浏览器加载页面时,我们要与之交互元素可能会在不同的时间间隔加载。这样,不仅很难识别元素,而且如果找不到元素,也会抛出“ ElementNotVisibleException ”异常。...隐式等待 隐式等待将告诉Web驱动程序等待一段时间,然后抛出“无此类元素异常”。隐式等待的默认设置。一旦设置了时间,Web驱动程序将在抛出异常之前等待特定的时间。...} 在上面的代码中,我将隐式等待时间设置20秒,这意味着特定元素加载或到达输出的最大等待时间20秒。...注意: 隐式等待是全局应用的,这意味着整个驱动程序实例中的所有Web元素始终可以使用它。这意味着如果驱动程序正在与100个元素进行交互,则隐式等待适用于所有100个元素。 这全都与隐式等待有关。...Selenium Web驱动程序中显式等待的条件 条件1 – 假设我有一个具有某些登录表单的网页,并且登录需要花费很多时间来加载“帐户”页面或“主页”。

    1.7K20

    selenium源码通读·2 | commonexceptions.py异常类

    ,当screen和stacktrace都不为空的时候,exception_msg其它两个参数的拼接。...“stale”时引发,Stale表示元素不再出现在页面的DOM上InvalidElementStateException 由于元素处于无效状态而无法完成命令时引发,这可能是因为试图清除既不可编辑又不可重置的元素...,但是它不可见,因此无法与之交互,在尝试单击或阅读文本时最常见隐藏在视图之外的元素的pass占位ElementNotInteractableException 当DOM中存在一个元素但没有交互时抛出使用该元素将点击另一个元素进行绘制...pass占位 ElementNotSelectableException尝试选择不可选择的元素时引发,For example, selecting a 'script' element.例如,选择“脚本...导航导致用户代理发出证书警告,这通常是TLS证书过期或无效的结果pass占位 InvalidCoordinatesException交互操作提供的坐标无效pass占位 InvalidSessionIdException

    1.4K50

    【Selenium 自学系列】(一)看源码分析交互原理

    在正式学习Selenium之前,先带大家从源码上理解Selenium WebDriver 的交互原理 Selenium WebDriver 交互原理 WebDriver的交互按照CS模式(Client客户端与...),封装成浏览器操作的API,用来定位元素等等 Remote Server启动就会等待Client发送请求并做出相应处理 那么 Client 是什么呢?...可执行文件(MacUnix可执行文件,Winexe)能运行ChromeDriver 所以Selenium先启动了ChromeDriver。...当然,我们可以手工启动ChromeDriver来模拟这个启动过程 手动启动ChromeDriver 有两种方式: 第一种方法 : 进入已经下载好的ChromeDriver目录,以mac终端例,在命令行中输入命令...Client Cookie携带sessin id ,再次给Remote Server 发送HTTP请求,操作浏览器,定位页面元素等等 解析response,判断脚本是否继续还是结束 Selenium交互原理

    1.1K30

    Selenium常见异常解析及解决方案示范

    , 解决方法: 前面加上sleep等待重试,或换一种定位方式 NoSuchAttributeException: 元素没有这个属性, 解决方法: 确认定位到的元素是否目标元素, 检查属性拼写 NoAlertPresentException..., 解决方法, 稍后重试 元素操作异常类: 隐藏/不可操作状态 ElementNotVisibleException:元素不可见异常, selenium不能直接操作隐藏元素, 解决方法: 加上等待,...使用正常步骤使元素显示, 或使用js找到该元素的祖先节点的隐藏属性(通常styple=”display: none”), 移除该属性然后定位操作....StaleElementReferenceException: 陈旧元素引用异常, 页面刷新或跳转使用了之前定位到的元素, 解决方法: 重新定位元素并操作 InvalidElementStateException...: 元素状态异常 元素只读/不可点击等, 解决方法, 等待或使用js移除元素readonly/disable等限制属性操作 ElementNotSelectableException:元素不可被选中,

    2.4K10

    「Python爬虫系列讲解」八、Selenium 技术

    通过 CSS 选择器定位元素 4 常用方法和属性 4.1 操作元素的方法 4.2 WebElement 常用属性 5 键盘和鼠标自动化操作 5.1 键盘操作 5.2 鼠标操作 6 导航控制 6.1 下拉菜单交互操作...4 常用方法和属性 4.1 操作元素的方法 定位操作完成需要对已经定位的对象进行操作,这些操作的页面行为通常需要通过 WebElement 接口实现。...获取当前页面的 URL tag_name 返回元素的标签名称 5 键盘和鼠标自动化操作 Selenium 技术还可以实现自动操作键盘鼠标的功能,所以它更多地用用于自动化测试领域,通过藕丁操作网页、...6.1 下拉菜单交互操作 前面讲述的百度搜索案例就是一个页面交互的过程,包括: 调用 driver.find_element_by_xpath() 函数定位元素 调用 send_keys(key) 输入关键词或键盘按键...这里将补充页面交互切换下拉菜单的实例。

    7K20

    ​技术分享 | Web自动化之显式等待与隐式等待

    在做 Web 自动化时,一般要等待页面元素加载完成,才能执行操作,否则会报找不到元素等各种错误,这样就要求在有些场景下加上等待。...如果再次设置隐式等待,那么一次的会覆盖前一次的效果。 当在 DOM 结构中查找元素,且元素处于不能立即交互的状态时,将会触发隐式等待。...Python 版本 self.driver.implicitly_wait(30) Java 版本 //隐式等待调用方式,设置等待时间5秒 driver.manage().timeouts().implicitlyWait...(30, TimeUnit.SECONDS); 显式等待 显式等待是在代码中定义等待条件,触发该条件再执行后续代码,就能够根据判断条件进行等待。...在点击答疑区时,元素已加载完成,但是还处在不可点击的状态,这时要用到显式等待。

    86130

    使用Python和Chrome安装Selenium WebDriver

    诸如Selenium WebDriver之类的软件包浏览器交互 提供了编程语言绑定。Selenium支持主要语言,例如C#,Java,JavaScript,Ruby和Python。 自动化代码。...程序员使用语言绑定来自动化浏览器交互。常见的 交互包括查找元素,单击元素以及抓取文本。通常,这是使用测 试自动化框架编写的。 JSON Wire协议。...所有WebDriver调用都将通过它进行. driver.implicitly_wait(10) Web UI测试自动化中最痛苦的部分是在触发交互之后等待页面加载/更改。该页面需要时间来呈现新元素。...隐式等待被声明一次,然后自动用于 所有元素。另一方面,显式等待可以以每次显式等待调用为代价每个交互提供自定义等待。作为最佳实践,用等待一个风格 完全用于测试自动化。...第二个迭代(将quit称为调用)是测试完成要调用的“清理”阶段 。编写夹具作为生成器将相关的设置和清理操作放在一起作为一个关注点。

    3.6K00
    领券