gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:28:16 27 4
gpt4 key购买 nike

问候 Stack Overflow 社区,

我有一个简短的问题,如果得到回答,将帮助任何其他希望使用 Selenium 和 C# 的人等待文本出现在网页上,该文本不是可点击的链接,而是显示在 label 标签中。

我有以下示例代码,

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

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

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

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

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

这是我根据几篇未解决此问题的堆栈溢出文章尝试的方法。

wait.Until(ExpectedConditions.TextToBePresentInElementLocated(By.Id("statusBar"), "Not Ready"));
wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@id='statusBar']//label[contains(text(), 'Not Ready')]")));
wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@id='statusBar'][contains(text(), 'Not Ready')]")));

如有任何帮助,我们将不胜感激。

最佳答案

看来你们很接近。您需要引发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"));

关于c# - 在 C# 中等待 Selenium Web 驱动程序中的标签标签文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53106407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com