Selenium文本框为NULL文本

问题描述 投票:0回答:1

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

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

以下是运行计算(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。

我不太清楚我能在这做什么。

c# selenium
1个回答
0
投票

请尝试运行此命令:

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

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

然后做:

Driver.Instance.FindElement(By.Id("txtEQ")).GetAttribute("Value")
© www.soinside.com 2019 - 2024. All rights reserved.