MPo*_*ter 5 javascript automation element
我正在开发一个自动化项目,其中有一个带有搜索框的网络适配器,但没有搜索按钮,继续的唯一方法是按 Enter 键。我发现之前的一个线程提供了通过 ID 获取文本框元素的解决方案,但是在这种情况下,文本框 ID 是在每次页面加载时随机生成的。
文本框的名称也始终会更改,但名称结尾始终以 结尾_text。
我尝试*_text在以下脚本中使用作为我的参数,但我不断收到错误。有什么想法我做错了吗或者有更好的建议吗?
eventname = "keydown"
elementID = "*_text"
Run Code Online (Sandbox Code Playgroud)
function os_RaiseEvent(eventname,elementId) {
var element = document.getElementsByName(elementId)[0];
var event;
if(document.createEvent) {
event = document.createEvent("HTMLEvents");
event.initEvent(eventname, true, false);
if(eventname == "keydown" || eventname == "keyup") {
event.keyCode = 13;
}
element.dispatchEvent(event);
}
else if(document.createEventObject) {
event = document.createEventObject();
if(eventname == "keydown" || eventname == "keyup") {
event.keyCode = 13;
}
element.fireEvent("on" + eventname, event);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
我对这个属性有点困惑......是它name还是id. 虽然这没什么关系,但您可以尝试使用Attribute Ends With Selector.
您可以使用选择器querySelectorAll()来选择多个元素。
document.querySelectorAll('[name$="_text"]')[0]
Run Code Online (Sandbox Code Playgroud)
OR: withquerySelector()用于选择第一个匹配的元素:
document.querySelector('[name$="_text"]')
Run Code Online (Sandbox Code Playgroud)
document.querySelectorAll('[name$="_text"]')[0]
Run Code Online (Sandbox Code Playgroud)
document.querySelector('[name$="_text"]')
Run Code Online (Sandbox Code Playgroud)