Javascript执行器 : setAttribute using name

标签 javascript java html selenium-webdriver

我想使用 JavascriptExecutor 操作的 HTML 没有 id。它只包含nameclasstag。其中只有 name 是唯一的,其余两个对于 DOM 中存在的许多其他 WebElements 是常见的。

我试过了:

String javaScriptCode = "document.getElementsByName('ac118672').setAttribute('value','00031454476543');";

jse().executeScript(javaScriptCode);

这给了我错误 document.getElementsByName(...).setAttribute 不是函数,这是显而易见的,因为 document.getElementsByName 给出了此处描述的所有元素的集合 https://www.w3schools.com/jsref/met_doc_getelementsbyname.asp .

那么有没有其他方法可以使用 JavascriptExecutor 更改 value 属性的值?

引用文献:

How to edit HTML (remove readonly) and type in input box using JS Executor?

JavaScriptexecutor setAttribute value on selenium

最佳答案

试了很多方法,前后 sleep ,都不行。

最后对我有用的是:

document.getElementsByName('ac118672')[0].value='00031454476543';

jse().executeScript(document.getElementsByName('ac118672')[0].value='00031454476543');

我想 setAttribute 也做了同样的事情,但它没有用。

我在 Windows 7 上的 Chrome 和 Gecko Driver 最新版本上测试了它。

关于Javascript执行器 : setAttribute using name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53527626/

相关文章:

java - 尝试使用默认相机应用程序并捕获图像并上传到 Firebase 存储来使用 Firebase

javascript - 如何将语言翻译添加到 amcharts?

javascript - 如何检查管道的变化? Angular 文本区域

javascript - 铁型错误响应体

javascript - 从 Ajax 到 Php 传递和处理 2D 数组

javascript - 播放视频时标题栏中的音量图标 - 嘈杂的选项卡

javascript - 相对于鼠标位置定位 div

java - 如何使切换按钮自动切换

java - 在 Hibernate 中,两个实体如何与第三个实体具有多对多的单向关系?

html - Bootstrap 3 如何在一行中显示两张图片