【发布时间】:2017-06-12 10:25:13
【问题描述】:
问题: 我正在使用 Selenium - C# 编写一些功能测试。 我必须在代码镜像文本区域中添加两条 CSS 行。似乎我只能在我的 C# 代码中使用 Javascript 来完成它,方法是使用 class= CodeMirror 定位主“div”。即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 在执行开始时设置为 Null,但在循环中的第一次迭代之后:值将是 CSS 代码,将从另一个文件粘贴输出:第一次迭代 -> 现有 CSS - > 第二次迭代 -> 现有 CSS -> div.questframe { -webkit-border-radius: 40px; -moz-边界半径:40px; : 40px;}
-
Console.WriteLine(" Existing CSS -> "+ ExistingCSS);你的控制台打印了什么? -
这个:现有的 CSS -> 现有的 CSS -> div.questframe { -webkit-border-radius: 40px; -moz-边界半径:40px; : 40px;}
标签: javascript c# css selenium-webdriver codemirror