在C#中的Selenium Web驱动程序中等待标签文本

时间:2018-11-01 17:31:51

标签: c# selenium xpath css-selectors webdriverwait

问候堆栈溢出社区

我有一个简短的问题,当回答时,它将帮助正在寻求使用Selenium和C#的任何其他人等待,直到文本出现在不是可点击链接但显示在标签标记中的网页上。 / p>

我有以下示例代码,

s = list(set(con.columns) - {'FAULTY'}) 

array = np.array(con.select(s).collect())

使用Selenium和C#,我试图插入一个等待直到期望的条件,该条件将暂停代码,然后在条件满足时恢复。

我可以找到标签,并在XPath找到标签后执行操作...

<div class="class1" style="style7">
<label id="statusBar" class="class2">Not Ready</label>
</div>

但是,当我尝试等待该标签标记中的“未就绪”文本可见时,C#脚本此时被卡住,无法在标签中找到该文本。

这是我根据一些没有解决此问题的堆栈溢出文章尝试过的。

wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@id='statusBar']")));

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您似乎很接近。您需要诱导 WebDriverWait ,并且可以使用以下任一解决方案:

  • 使用TextToBePresentInElementLocated()

    • CssSelector

      wait.Until(ExpectedConditions.TextToBePresentInElementLocated(By.CssSelector("label.class2#statusBar"), "Not Ready"));
      
    • XPath

      wait.Until(ExpectedConditions.TextToBePresentInElementLocated(By.XPath("//label[@class='class2' and @id='statusBar']"), "Not Ready"));