Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用selenium在代码镜像行中键入文本?_Javascript_Java_Html_Selenium_Internet Explorer - Fatal编程技术网

Javascript 如何使用selenium在代码镜像行中键入文本?

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';",

我使用IE将文本输入到一个标记为代码镜像行的文本框中。我尝试了javascript executor,但这似乎只适用于外观,因为当我尝试保存键入的内容时,它会消失。如何将文本写入代码镜像,使其保持不变?下面是我与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
来实现这一点的东西,但还没有找到一个关于如何实现的明确答案?感谢您的帮助。谢谢。

使用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");