我需要将文本输入到没有输入标记的表中的字段中。此XPath唯一地指出字段
//div[@id="contentBody"]//div[@row="0"]/div[contains(@class, "l4") and contains(@class, "r4")]
(可以在此XPath中添加一个尾随/div
,这没有区别)
我可以使用该XPath读取该字段,但当我尝试在同一字段中插入一些文本时,我会得到一条错误消息:
InvalidElementStateException: Message: invalid element state: Element must be user-editable in order to clear it.
<div class="slick-cell l4 r4 alignRight uppercase highint editable-cell active selected" aria-describedby="inforDataGrid731693C5" tabindex="-1" role="gridcell">
<div class="edit-cell">2,0</div></div>
您得到的结论是经过修正的--您不能将输入发送到
应用程序使用的UI很可能使用此
元素接受实际的键盘条目,javascript代码用它们更新
。
以下是如何找到输入标记--在浏览器中,(手工)将值设置为页面唯一的字符串--例如,“MyMegasSpecialString”。然后在控制台中运行以下js:
[...document.getElementsByTagName("input")].forEach(function(el){ if (el.value == "myMegaSpecialString"){console.log(el);} })
它将打印具有该“特殊”值的元素。
根据注释中的讨论,没有发现元素具有此值。正如@Andersson正确地纠正的那样,在特殊情况下,输入以外的其他元素可以接收,khm,input--它们应该具有
contenteditable
属性,并且它是从父元素继承的--例如,如果设置在标记上,则可以在页面中的任何元素上键入。
so-JavaScript的修改版本,用于定位“谁持有我们的值”;值得庆幸的是,getElementsByTagName()
支持参数的通配符-这将匹配任何元素:
[...document.getElementsByTagName("*")].forEach(function(el){ if (el.value == "myMegaSpecialString"){console.log(el);} })
它可能会慢一点--但它必须打印value
属性等于“MyMegasSpecialString”的元素。
任务继续-您输入的文本不会出现在任何元素的value
属性中?没问题,让我们在元素文本内容中查找它。
当您实际编辑、
这是前一个版本的变体-手动将文本设置为在整个页面中唯一的值(以限制输出),并在控制台中运行该值:
[...document.getElementsByTagName("*")].forEach(function(el){ if (el.textContent.indexOf("myMegaSpecialString") !== -1){console.log(el);} })
,这将(应该?可能?我现在还不确定:d)在控制台中打印所有将该字符串作为其文本一部分的DOM元素。
分解javascript中的内容,以备将来的更改:
Document.GetElementsByTagName(“*”)]
返回具有该标记名的所有元素作为数组;参数星号(*
)-任何标记名。foreach
-集合元素上的循环,将每个元素传递给其中的匿名函数。el.textContent
-返回节点(及其子节点)的文本内容。indexof()
-返回参数在字符串中的位置,如果不存在-1
(为了兼容性,indexof()
与contains()
使用,后者在ES6中使用)。console.log(el)
将在控制台中打印该条件。我在selenium查找输入文本字段时遇到了问题--'billing-address__line-1我使用的代码是- 错误信息 线程“main”org.openqa.selenium.nosuchelementException:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“.//fieldset[.//input[@id='billing-addres
问题内容: 当我在文本字段中输入文本时,它将被删除。 这是代码: 问题答案: 同意Subir Kumar Sao和Faiz。
当我在文本字段中输入文本时,它会被删除。 代码如下:
问题内容: 我正在尝试我的React.js的第一部分,并在很早的时候就陷入了困境…我有下面的代码,该代码将搜索表单呈现为。但是,在搜索框中输入内容无济于事。 大概在通过道具并上下移动时会丢失一些东西,这似乎是一个常见问题。但是我很沮丧-我看不到缺少的东西。 (最终,我会使用其他类型的,但是我只是想让这一类正常工作。) 问题答案: 您尚未将道具放在机箱中。它必须在JSX中。 在文档中充分考虑了将 p
我有一个HTML元素. 加载页面后,我可以使用从该元素获取文本。 但随后我点击这个元素并更改里面的文本(例如,改为“已编辑”)。DOM中没有任何变化,包括属性 的值(即仍然返回“initial”,并且DOM中的元素看起来像) 如何提取现在在浏览器中可见的值(即字符串“已编辑”)?我需要执行一些JavaScript或其他东西吗?
问题内容: 我正在将一个控制台应用程序转换为使用Swing的应用程序。目前,我希望我的程序执行与此类似的操作,如何通过使用或类似方法实现此目标? 简而言之; 在用户在文本字段中输入内容并按Enter之前,如何保持程序的执行。 问题答案: 更新: 因此,您要等待用户从GUI输入内容。这是可能的,但由于GUI在另一个线程中运行,因此需要进行 同步 。 因此,步骤如下: 创建一个“ holder”对象,