javascript - 如何在 CodeMirror 编辑器中使用 selenium 模拟关键事件

标签 javascript python selenium codemirror

有很多示例展示了如何使用以下内容使用 selenium 输入文本

driver.execute_script('cm.setValue("text")');

这可行,但对我们来说并不是很“ Selenium ”。我们想要模拟实际的键盘按键,例如 selenium 中的 send_keys 函数。我们创建了一个 enterFormData,它使用 driver.send_keys() 获取一个元素并为其键入内容(例如,带有我们可以轻松模拟输入的 ID 的文本区域)。我们如何在 CodeMirror 编辑器中模拟实际的按键操作?我们还希望能够测试热键(例如 Ctrl-Shift-M),然后获取 driver.get_screenshot_as_base64()

最佳答案

要让 selenium 检测键盘事件,您首先必须使 codemirror 成为焦点。

你可以这样做:

/* getting codemirror element */
WebElement codeMirror = driver.findElement(By.className("CodeMirror"));

/* getting the first line of code inside codemirror and clicking it to bring it in focus */
WebElement codeLine = codeMirror.findElements(By.className("CodeMirror-line")).get(0);
codeLine.click();

/* sending keystokes to textarea once codemirror is in focus */
WebElement txtbx = codeMirror.findElement(By.cssSelector("textarea"));
txtbx.sendKeys("Hello World");

关于javascript - 如何在 CodeMirror 编辑器中使用 selenium 模拟关键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25874686/

相关文章:

javascript - 我怎样才能专注于 selectize 选择框?

java - 如何在 chrome selenium 中以特定缩放尺寸运行所有脚本?

python - Selenium,使用 Python,如何简化脚本以便我可以从其他 python 脚本运行它们?

javascript - Javascript 的正面回顾

javascript - 在未来事件中使用闭包的问题

javascript - 用于打印附加图像的打印按钮

python - Flask 蓝图的注册顺序

python - 将人脸识别功能添加到人脸检测程序

python - env.password 在 fab 文件中设置,但进程仍然多次询问 sudo 密码

java - 如何使用 css 选择器选择以下值