[英]C# Selenium wait until element display is equal to none - works only on debug
[英]C# Selenium wait until element display is equal to none
所以我正在嘗試使用使用 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>
等待JavaScript將元素屬性更改為style="display: none;"
您必須為InvisibilityOfElementLocated()
引入WebDriverWait ,您可以使用以下解決方案:
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.InvisibilityOfElementLocated(By.Id("element_id")));
對於 C#,您可以按照以下步驟操作。
使用命令從 NuGet 下載所需的包
安裝包 DotNetSeleniumExtras.WaitHelpers -Version 3.11.0
例如,您想從自動完成文本框中為術語“bubai”選擇建議。 假設使用 ul 和 li 填充 seggestion。
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.