2017-04-11 42 views
0

我想我有一些不好的编码,我正在尝试写一个硒测试。有问题的文本框的默认值是“30”,它始终是设置的(服务器端asp.net)。然而,屏幕的执行期间的JavaScript填充文本像这样:硒文本框NULL文本

document.getElementById("txtEQ").value = eqVal; 

以下是文本框的calulation(JavaScript的)之后的输出已运行:

enter image description here

然而中,源仍然显示的值= “30”

TextBox source

以我硒代码我试图获取文本,但它总是返回null。

Driver.Instance.FindElement(By.Id(txtEQ)).Text 

当我尝试获取的价值,我总是得到30

Driver.Instance.FindElement(By.Id(txtEQ)).GetAttribute("Value") 

我也试过这(和许多其他变化):

IJavaScriptExecutor js = (IJavaScriptExecutor)Driver.Instance; 
js.ExecuteScript("document.getElementsByClassName('txtEQ').text;").ToString(); 

返回null每时每刻。

我不确定我可以在这里做什么。

回答

0

请尝试运行此命令:

IJavaScriptExecutor js = (IJavaScriptExecutor)Driver.Instance; 
js.ExecuteScript("$(\"#txtEQ\").val(\"25\").change();") 

触发元素上的改变事件可能解决这个问题你。

然后做:

Driver.Instance.FindElement(By.Id("txtEQ")).GetAttribute("Value") 
+0

不幸的是,没有工作。价值保持在30。 – webdad3