如何将另一行添加到现有行 - 使用 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 值发送到该文本区域...");
问题: 我正在使用 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 值发送到该文本区域...");