send_keys报错element not interactable

这两天要在阿里云日志中操作UI,以输入关键字搜索日志。

在send_keys时报错element not interactable。

iframe

第一个问题是iframe,通过切换iframe解决:

driver.switch_to.frame(0)  # 索引从0开始

span

第二个问题是span。

F12查看html长这样:

①find_element(pre).click 有效,说明iframe切换成功了

②find_element(span2).send_keys报错

element not interactable

span不支持send_keys。

第一个方法,通过调js来解决,设置span的innerText

search_text = 'error'
log_search_span = driver.find_element_by_xpath(
        '//*[@id="queryEl"]/div[2]/div/div[6]/div[1]/div/div/div/div[5]/div/pre')
js = 'arguments[0].innerText=arguments[1];'
driver.execute_script(js, log_search_span, search_text)

第二个方法,添加属性contenteditable

search_text = 'error'
log_search_span = driver.find_element_by_xpath(
        '//*[@id="queryEl"]/div[2]/div/div[6]/div[1]/div/div/div/div[5]/div/pre')
js = 'arguments[0].setAttribute("contenteditable", "true");'
driver.execute_script(js, log_search_span)
log_search_span.send_keys(search_text)  # 可编辑后send_keys成功

不简单

虽然值设置成功了,但是不能用,在查询时,还是用空值在查询。

经过分析,得出以下线索:

  1. 设置的元素值是已经生成后的dom
  2. 程序真正的dom隐藏在js/后端中
  3. span是由js或后端动态生成的
  4. 要想模拟出来,需要分析js实现代码
  5. 控制台的js代码是加密混淆过的
  6. selenium的send_keys已经是模拟键盘输入了,不知道为啥没有触发相关代码,存值到dom

网上很多的方案是<input>标签,比较好解决,阿里的这个span还真有点不简单。

chrome console调试js

最后分享一下chrome console调试js的方法。

F12后,在元素上右键,选择Copy selector,复制selector

切换到console,输入即可定位到该元素:

document.querySelector('#queryEl > div.react-codemirror2 > div > div.CodeMirror-scroll > div.CodeMirror-sizer > div > div > div > div.CodeMirror-code > div > pre > span > span').innerText;

原文地址:https://www.cnblogs.com/df888/p/11819112.html

时间: 2024-10-09 00:18:36

send_keys报错element not interactable的相关文章

iTextSharp导出Pdf报错 Element not allowed

今天做iTextSharp做PDF导出 突然报错Element not allowed 于是开始检查各个地方,和自己以前写的Demo相比没有什么问题啊,最后发现报错 XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msInput, null, Encoding.UTF8, new UnicodeFontFactory());这个地方,然后查看了后台, 同时写了一个Table测试也是正常的.于是只能删除节点一个一个测试,发现原来 iTex

解决python中selen模块中&#39;list&#39; object has no attribute &#39;send_keys&#39;报错

程序在执行如下代码的时候报错'list' object has no attribute 'send_keys' 解决: 把find_elements_by_id方法改成find_element_by_id 参考: https://stackoverflow.com/questions/29957373/selenium-python-send-key-error-list-object-has-no-attribute 解决python中selen模块中'list' object has no

解决点击span元素报错Element is not clickable at point

尝试了通过id,xpath等等定位元素后点击都提示Element is not clickable at point 再看了下可以click的元素发现上面有onClick事件 查看了一下元素是span 几番操作都不行,最后还是请教的大神,通过js脚本来操作 其实浏览器中可以F12,然后同等的输入js脚本,点击Enter,发现页面会有函数对应的页面操作 将js脚本同等移动到java中 顺带介绍一下操作滚动条 String high = "scroll(0,10000)";        

使用饿了么ui表单验证报错: [Element Warn][Form]model is required for validat

[Element Warn][Form]model is required for validat 如文末的完整例子: 该提示说的是 form表单需要一个绑定一个 对象(使用:model="editform" 不能使用v-model="editform"), 同时v-model="multipleSelectionStudent" 的multipleSelectionStudent一定一定一定要在editform对象中, 而例子中v-model=

ReactJs 报错 Element type is invalid: expected a string (from built-in components) or a class/function (for composite components) but got: undefined. Check the render method of `Me`.

今天在重构一个页面的时候,碰到了一个error,具体的error信息如下图中所示: 最后经过一番查找定位,终于找到了问题所在,原因就是在父组件引用子组件时多加了一个大括号. import {Chart} from 'Chart'; 把{}去掉就可以了.

Ecliplse 重命名后web.xml 报错Attribute &quot;xmlns&quot; was already specified for element &quot;web-app&quot;.

报错信息:Attribute "xmlns" was already specified for element "web-app" 由于项目的重命名,出现了xmlns的重复赋值,这可能是eclipse自己设定的一种方式,重新为项目匹配合适的配置. <web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://java.sun.com/xml/ns/javaee” xm

dubbo spring pom文件报错:提示no declaration can be found for element &#39;dubbo:service&#39;.

pom文件报错:The matching wildcard is strict, but no declaration can be found for  element 'dubbo:service'. 解决办法: 找到dubbo的jar包,解压后在META-INF文件夹下找到dubbo.xsd 在eclipse中点击windows-->preferrence-->xml-->xmlcatalog 选择add-->catalog entry  -->file system

【Python】selenium调用IE11浏览器,报错“找不到元素”NoSuchWindowException: Message:Unable to find element on closed window

当编写自动化脚本,定位浏览器元素时,报如下错误: 代码: >>> # coding=utf-8 >>> from selenium import webdriver >>> driver = webdriver.Ie() >>> driver.get("www.baidu.com") >>> driver.find_element_by_id("kw").send_keys(&

解决eclipse spring配置报错:cvc-elt.1: Cannot find the declaration of element

解决eclipse spring配置报错:cvc-elt.1: Cannot find the declaration of element 'beans'.Referenced file contains errors (http://www.springframework.org/schema/aop/spring-aop-3.1.xsd). 原因是无法从网络上读取到相应的schema文件,但实际上在浏览器中是可以访问的.却一直在eclipse中显示红叉,当然,并不影响编译打包. 查看所依赖