簡體   English   中英

C# Selenium 等到元素顯示等於 none

[英]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#,您可以按照以下步驟操作。

  1. 使用命令從 NuGet 下載所需的包

    安裝包 DotNetSeleniumExtras.WaitHelpers -Version 3.11.0

  2. 例如,您想從自動完成文本框中為術語“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM