use*_*406 9 javascript selenium-webdriver
我试图通过javascript在网页中模拟键盘事件,因为Safari浏览器不支持Actions.
首先,我创建了一个简单的表单(如下所示),并试图通过文本框进行选项卡,但它不起作用.
使用的Java脚本:( ubuntu和chrome浏览器).我在Chrome浏览器控制台中解雇了该脚本.
var pressTabKey = document.createEvent("KeyboardEvent");
pressTabKey.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 9, 0);
document.getElementById('1234').focus();
document.getElementById('1234').dispatchEvent(pressTabKey);
Run Code Online (Sandbox Code Playgroud)
HTML表格:
<html>
<head>
</head>
<body>
<p>Test Page </p>
<form>
<input id="1234" type="text" value="Enter Here">
<br>
<br>
<input id="1235" type="text" value="Enter Here">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助:
https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
示例:我创建一个事件并使用dispatchEvent()来触发它:
var pressTabKey = new Event('keydown');
document.getElementById('1234').addEventListener('keydown', function() { alert("hi!"); });
document.getElementById('1234').dispatchEvent(pressTabKey);
Run Code Online (Sandbox Code Playgroud)
函数 createEvent() 已弃用: https://developer.mozilla.org/en-US/docs/Web/API/Document/createEvent
编辑:您可以简单地从 keydown 或 keypress 事件中读取按键代码,如下所示:
http://jsfiddle.net/adrielD/me9q1qu6/
超文本标记语言
<p>Test Page </p>
<form>
<input id="1234" type="text" value="Enter Here"><br>
<input id="1235" type="text" value="Enter Here">
</form>
Run Code Online (Sandbox Code Playgroud)
JS:
var tab1 = document.getElementById("1234");
var tab2 = document.getElementById("1235");
tab1.addEventListener("keydown", function(event) {
if(event.keyCode == 9) {
event.preventDefault();
tab2.focus();
}
});
tab2.addEventListener("keydown", function(event) {
if(event.keyCode == 9) {
event.preventDefault();
tab1.focus();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2340 次 |
| 最近记录: |