我有一个文本输入,它是由基于其他输入的值更改的Java脚本。
我怎样才能让 selenium 等待它的变化?
我目前都试过了
var wait3 = new WebDriverWait(_driver, TimeSpan.FromSeconds(5)).Until(driver => !driver.FindElement(By.Id("gbpAmount")).Equals(""));
和
bool pop= wait.Until<bool>((d) =>
{
var populated1 = d.FindElement(By.Id("gbpAmount")).Text != "";
var populated2 = d.FindElement(By.Id("gbpAmount")).Text != "0";
if (populated1 && populated2)
{
return true;
}
else
{
return false;
}
});
然而,这两种方法都不起作用。要么它们只是通过,然后当我取出并检查元素时,它是“”,或者它们只是超过了等待时间。
然而,很明显,屏幕上的值发生了变化。
2条答案
按热度按时间kd3sttzy1#
在Java中,该方法将是:
因此,C#中的等价物应该可以工作。
vwkv1x7d2#
您需要检查文本输入的
value
DOM属性,而不是IWebElement的Value
属性。这应该适用于
<input type="X">
和<textarea>
。如果这些值本质上是数值,则应等待出现非零结果:
请注意,负数将导致返回TRUE。如果需要正数,请将
result != 0
更改为result > 0
。