我正在使用 IE 在标记为 CodeMirror-line 的文本框中输入文本。我尝试过 javascript 执行器,但这似乎只是为了看起来,因为当我尝试保存我输入的内容时,它会消失。如何将文本写入代码镜像以使其保留?下面是我使用 javascript 执行器来写入代码镜像的 xpath
。
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].innerHTML = 'Some text';", element);
@FindBy(xpath = "//*[@id='md-tab-content-1-0']/div/div/div[2]/jw-editor/div[1]/div/div[6]/div[1]/div/div/div/div[5]/pre")
public WebElement element;
我也看到过一些关于使用 setValue
来实现此目的的内容,但还没有找到关于如何实现的明确答案?任何帮助表示赞赏。谢谢。
最佳答案
要让 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 - 如何使用 selenium 在 Code Mirror 行中输入文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44054500/