问候堆栈溢出社区
我有一个简短的问题,当回答时,它将帮助正在寻求使用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']")));
任何帮助将不胜感激。
答案 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"));