我正在使用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
来实现这一目标的一些事情,但是没有找到明确的答案如何?任何帮助表示赞赏。感谢。
答案 0 :(得分:1)
使用xpath查找文本框并使用sendKeys()方法在文本字段中输入文本
WebElement element = driver.findElement(By.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")); element.sendKeys("Some Text");
答案 1 :(得分:0)
要让Selenium检测键盘事件,首先必须使代码镜像成为焦点。
您可以执行以下操作:
/* 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");