【发布时间】:2020-01-12 11:13:42
【问题描述】:
我正在使用 selenium 进行 UI 自动化,我想等到进度条完成,在进度条完成后我想执行一些其他操作。我已经尝试过 WedDriverWait,找到的元素不可见但它不起作用。请提出一些使用 C# Selenium 处理进度条的方法。
我已经尝试过 waitUntil Invisibility of element located function for the Particular Xpath
WebDriverWait wait = new WebDriverWait(driver, System.TimeSpan.FromSeconds(900000000));
wait.Until(ExpectedConditions.InvisibilityOfElementLocated(By.XPath(buildProgressStringExp)));
string buildProgressStringExp = "//table[@class='pane stripped']/tbody//descendant::tr[@class='build-row transitive single-line overflow-checked']//table[@class='progress-bar ']"
我已经尝试了下面的代码,但它仍然没有工作。它一直等到特定的时间限制,然后抛出异常
{while(true)
{
try
{
IWebElement el = driver.FindElement(By.XPath("Xpath of bar"));
bool abc = el.GetAttribute("style").Equals("width:100%;");
if (abc)
{
return true;
}
}
catch(StaleElementReferenceException exp)
{
return true;
}
Thread.Sleep(1000);
}
}```
【问题讨论】:
-
在构建结束时,屏幕上的一些状态会发生变化,比如小圆圈会变成红色或绿色对吗?或者那个“x”图标也会消失,您是否尝试将它们用作等待的基础?
-
请花一点时间来修复代码上的缩进。另外,请阅读为什么a screenshot of code is a bad idea。粘贴代码并正确格式化它。页面截图很好,但 HTML 截图不行。你知道你等待的时间是 28.5 年,对吧?这似乎有点傻,不是吗?
-
@Spencer ,在构建结束时,第一个元素的 xpath 会发生变化,x 图标也会消失。我都试过了,但还是不行。
-
@Jeff 我会这样做的 thnks 建议 ????。我知道我等待的时间太长了,这很愚蠢,而且它也是一个测试代码,但仍然有这个等待时间,驱动程序并没有等到状态栏上的元素消失。
标签: c# selenium automation progress-bar webautomation