模拟 DOM 元素上的按键

Posted

技术标签:

【中文标题】模拟 DOM 元素上的按键【英文标题】:Simulating Key Press On DOM element 【发布时间】:2021-11-18 12:28:33 【问题描述】:

我正在尝试使用 WebView2 使用 C# 自动化 Web 输入表单。

Web 输入表单具有三个 DOM 元素:输入(用户名/密码)和输入按钮(禁用)。

如果您通过键盘(手动)向输入区域输入值,则启用输入按钮。但是发送 Java 脚本来设置输入框的值不会启用此按钮。当然,禁用此页面的自动化是一种保护...

有没有办法通过 java 脚本启用 Entry Button?

页面图片如下:

【问题讨论】:

document.getElementById('EntryButton').disabled = false; @PoulBak 它无论如何都不会影响按钮,我已经通过 WebView2 工具添加了脚本结果的图像,谢谢... 不要将文本添加为​​图像,将文本添加到代码格式化块中!更改后是否尝试调用按钮的click() 方法? 要点击按钮,首先必须启用它! 【参考方案1】:

网站所有者似乎已经安排了“进入按钮”的操作,只能通过击键来启用。防范自动化...

要模拟击键动作,您可以为每个 DOM 元素使用以下代码:

document.getElementById('USERNAME').focus();
document.execCommand('insertText', false, 'YourName');
document.getElementById('PASSWORD').focus();
document.execCommand('insertText', false, 'Password');
document.getElementById('ENTRY').click();

这将通过粘贴您的数据(如击键)来激活“输入按钮”...

【讨论】:

我可以称这个解决方案天才,非常感谢 case 数据框有以前的值,应用此清除旧值:document.getElementById('USERNAME').value = ''

以上是关于模拟 DOM 元素上的按键的主要内容,如果未能解决你的问题,请参考以下文章

appium 怎么获取android模拟器上的元素

Android模拟按键

请问街机模拟器Kawaks怎么设置按键连发?

python 模拟windows键盘按键的封装

JavaScript实现按键精灵

delphi中有模拟发送鼠标按键sendmessage的疑问