有很多示例展示了如何使用以下内容使用 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/