我认为我有一些不好的编码,我正在尝试编写Selenium测试。有问题的文本框的默认值为“30”,始终设置(服务器端asp.net)。但是,在执行屏幕期间,javascript会填充文本,如下所示:
document.getElementById("txtEQ").value = eqVal;
以下是运行calulation(javascript)后文本框的输出:
但是,源仍显示值=“30”
在我的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。
我不确定我能在这做什么。
答案 0 :(得分:0)
请尝试运行此命令:
IJavaScriptExecutor js = (IJavaScriptExecutor)Driver.Instance;
js.ExecuteScript("$(\"#txtEQ\").val(\"25\").change();")
触发元素上的更改事件可能会为您解决此问题。
然后做:
Driver.Instance.FindElement(By.Id("txtEQ")).GetAttribute("Value")