【发布时间】:2018-04-29 23:14:19
【问题描述】:
尝试在“Textarea1”控件中粘贴数据(非常大),以下是我尝试使用的两种方法,但第一种方法尝试粘贴数据但有时会抛出超时错误,第二种方法会抛出 JS 错误。请帮忙
public StringBuilder PasteDataIn_Tarea1
{
set
{
//Method1
Textarea1.Clear();
Textarea1.SendKeys(value.ToString());
//Method2
IWebDriver driver;
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
StringBuilder javascript = new StringBuilder();
javascript.Append(string.Format("$('#Textarea1').text('{0}')", value));//value has my data which is quiet big, "Textarea1" is where I need to paste my data
js.ExecuteScript(javascript.ToString()); // Js exector which should paste my data
}
}
Method2 抛出以下异常:
“System.InvalidOperationException”类型的异常发生在 WebDriver.dll 但未在用户代码中处理
附加信息:JavaScript 错误 (UnexpectedJavaScriptError)
我更喜欢去Method2,因为第一个需要时间将数据粘贴到文本区域。
【问题讨论】:
-
抛出了哪些确切异常?
-
添加method2异常,第一种方法是webdriver超时异常
-
IMO,
Method1更干净。 -
It
s easy to use Method1 but it takes time to paste the data, like character by character its 粘贴,thats why its 超时 -
另外,你有
constants就像InputEle,否则使用IJavaScriptExecutor直接XPath会更容易
标签: javascript c# selenium selenium-webdriver