首页 > 解决方案 > C# Selenium 等到元素显示等于无

问题描述

所以我正在尝试使用使用 javascript 的 selenium 更新页面,问题是页面自身使用 javascript 来提示完成一个始终存在的元素,但是当更新不在进程中时,样式设置为

display: none;

我如何使用 (wait.Until) - 示例

wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.Id("")));

关于风格变化?

所以例子

wait.Until(Display: Block; is true);

Html 元素是,

<example id="example" style="display: none;" aria-hidden="true">


</example>

标签: c#seleniumselenium-webdriverwebdriverwebdriverwait

解决方案


要等待JavaScript更改元素属性,因为style="display: none;"您必须诱导WebDriverWaitInvisibilityOfElementLocated()您可以使用以下解决方案:

new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.InvisibilityOfElementLocated(By.Id("element_id")));

推荐阅读