Selenium文本框为NULL文本

时间:2017-04-11 22:02:50

标签: c# selenium

我认为我有一些不好的编码,我正在尝试编写Selenium测试。有问题的文本框的默认值为“30”,始终设置(服务器端asp.net)。但是,在执行屏幕期间,javascript会填充文本,如下所示:

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

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

enter image description here

但是,源仍显示值=“30”

TextBox source

在我的selenium代码中,我尝试了获取文本,但它总是返回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。

我不确定我能在这做什么。

1 个答案:

答案 0 :(得分:0)

请尝试运行此命令:

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

触发元素上的更改事件可能会为您解决此问题。

然后做:

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