检测元素内容更改以避免thread.sleep

时间:2019-07-16 08:46:46

标签: c# selenium selenium-webdriver nunit

我必须为一个网站编写测试,包括selectelement和跨度的值。范围值取决于selectelement中选择的选项。在选择中切换选项后,跨度更新值需要花费几毫秒的时间。没有任何等待方法,GetSpanValue()会获取旧数据,因此我必须等待。 我使用Thread.Sleep(200)等待更新,但是我知道这是一个坏主意。我该如何避免呢?

我知道有隐式和显式等待,但是如何修改它以等待span内容更改?

page.ChangeSelectOption();
Thread.Sleep(200);
page.GetSpanValue();

1 个答案:

答案 0 :(得分:-1)

您可以使用秒表类(https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.stopwatch?view=netframework-4.8):

int millisecondsToWait = 200;
Stopwatch stopwatch = Stopwatch.StartNew();
while (true)
{
    if (stopwatch.ElapsedMilliseconds >= millisecondsToWait)
    {
        break;
    }
}

或缩短(您的选择相同):

Stopwatch stopwatch = Stopwatch.StartNew();
while (true)
    if (stopwatch.ElapsedMilliseconds >= 200)
        break;