Javascript 如何使用selenium在代码镜像行中键入文本?
我使用IE将文本输入到一个标记为代码镜像行的文本框中。我尝试了javascript executor,但这似乎只适用于外观,因为当我尝试保存键入的内容时,它会消失。如何将文本写入代码镜像,使其保持不变?下面是我与javascript执行器一起使用的Javascript 如何使用selenium在代码镜像行中键入文本?,javascript,java,html,selenium,internet-explorer,Javascript,Java,Html,Selenium,Internet Explorer,我使用IE将文本输入到一个标记为代码镜像行的文本框中。我尝试了javascript executor,但这似乎只适用于外观,因为当我尝试保存键入的内容时,它会消失。如何将文本写入代码镜像,使其保持不变?下面是我与javascript执行器一起使用的xpath,用于写入代码镜像 JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].innerHTML = 'Some text';",
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
来实现这一点的东西,但还没有找到一个关于如何实现的明确答案?感谢您的帮助。谢谢。使用xpath查找文本框,并使用sendKeys()方法在textfield中输入文本
要想让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");
请解释为什么你的答案能解决这个问题。。。简单地回答“这样做”并不能帮助人们学习Java+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");