因此,我尝试使用使用javascript的硒更新页面,问题是页面自身使用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>
答案 0 :(得分:1)
要等待JavaScript将element属性更改为 style="display: none;"
,必须为InvisibilityOfElementLocated()
引入 WebDriverWait ,您可以使用以下解决方案:
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.InvisibilityOfElementLocated(By.Id("element_id")));
答案 1 :(得分:0)
对于C#,您可以按照以下步骤操作。
使用命令从NuGet下载所需的软件包
安装软件包DotNetSeleniumExtras.WaitHelpers-版本3.11.0
例如,您想从自动填充文本框中为“ bubai”一词选择建议。 假设隔离使用ul和li填充。
a)要从迪拜进行搜索,请使用
将其发送到文本框 var txtSearch = driver.FindElements(By.Id("test_autocomplete")).FirstOrDefault();
txtSearch.SendKeys("dubai");
b)现在确保ul元素可用/可见
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(
SeleniumExtras.WaitHelpers.ExpectedConditions.InvisibilityOfElementLocated(By.Id("ul-id")));
c)然后检查并单击是否填充了建议
string XpathForLi = "//*[@id='ul-id']/li[1]";
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.XPath(XpathForLi))).Click();