如何将另一行添加到现有行 - 使用 JavaScript?

How can I add another line to an existing line - using JavaScript?

问题: 我正在使用 Selenium - C# 编写一些功能测试。 我必须在代码镜像文本区域中添加两行 CSS 。似乎我只能通过使用 class = CodeMirror 定位主 "div" 在我的 C# 代码中使用 Javascript 来做到这一点。即 shown in this image

但是当我使用此代码执行此操作时:

  IJavaScriptExecutor js = (IJavaScriptExecutor) Driver;

        string ExistingCSS=null;

        for (int i = 0; i < table.RowCount; i++)
        {
            ScrollIntoView(Driver.FindElement(By.ClassName("CodeMirror")));
            ExistingCSS = ExistingCSS + Driver.FindElement(By.ClassName("CodeMirror")).FindElements(By.ClassName("CodeMirror-line"))[i].Text;
            Console.WriteLine(" Existing CSS -> "+ ExistingCSS);

            js.ExecuteScript("arguments[0].CodeMirror.setValue(\"" + ExistingCSS + table.Rows[i]["CssValue"] + "\")", Driver.FindElement(By.ClassName("CodeMirror")));

        };

它添加了这些行,但下次我 运行 相同的代码时,它会覆盖该代码镜像文本区域中编写的内容。

帮忙? 谢谢。 :)

ExistingCSS = ExistingCSS + Driver.FindElement(By.ClassName("CodeMirror")).FindElements(By.ClassName("CodeMirror-line"))[i].Text;

按如下方式更改上面的行:

ExistingCSS += ExistingCSS + Driver.FindElement(By.ClassName("CodeMirror")).FindElements(By.ClassName("CodeMirror-line"))[i].Text;

我做了一个小的修复它 "hack" - 我找到了 style.display = none 的 Textarea。 - 我将其值更改为 Block: js.ExecuteScript("document.getElementById('CustomCssArea').style.display = 'block'"); -> 所以它是可见的。 - 然后我简单地通过使用 "element.SendKeys("CSS 此处的值将 CSS 值发送到该文本区域...");