当前位置: 首页 > 面试题库 >

Selenium Webdriver C#等待文本出现

令狐宣
2023-03-14
问题内容

我希望实现

wait.until(ExpectedConditions.textToBePresentInElementLocated(By.xpath("//div[@id='timeLeft']"), "Time left: 7 seconds"));

c#中的函数,等待文本出现。但是,textToBePresentInElementLocated()仅在Java中可用。有没有一种简单的方法可以在c#中实现这一点,等待文本出现在页面上?


问题答案:

Selenium是开源的,因此请看一下它的作用:

https://github.com/SeleniumHQ/selenium/blob/master/java/client/src/org/openqa/selenium/support/ui/ExpectedConditions.java#L305

但是,您拥有LINQ的强大功能,因此它将变得更加简单,伪:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.IgnoreExceptionTypes(typeof(StaleReferenceException)); // ignore stale exception issues
wait.Until(d => d.FindElement(By.XPath("//div[@id='timeLeft']")).Text.Contains("Time left: 7 seconds"));

最后一行将等待,直到从d.FindElement(By.XPath("//div[@id='timeLeft']")).Textcontains
返回的文本为止Time left: 7 seconds



 类似资料:
  • 在以下网站上:https://hepa.hu/hirek我正在等待这篇文章出现。这是javascript生成的,所以我开始在C#中使用Selenium。我编写了以下代码,以等待元素出现: (Xpath是从节点本身复制的)代码是有效的,就它真正等待元素出现而言,但是当我尝试访问里面的文本(firstResult. Text)时,它只是给出“”,而不是里面的实际文本。文本在h3标签内。我也一直在使用H

  • 我正在尝试将数据库调用移出控制器,以清理并使其可测试。当它们在控制器中时,一切都会顺利进行。我将它们移出控制器,并添加了一个异步,以确保我们等待。否则,我将调用的中的函数。现在,一旦我使用async/await,控制器中的函数就会认为没有用户,因为它没有等待。 有几个关于异步等待的SO问题,但我没有找到一个解决我的问题。我确实验证了返回了我的用户,并添加了控制台日志来显示路径。 节点猫鼬异步等待似

  • 问题内容: 单击特定按钮时-我的测试站点将打开模式窗口。 但是模式窗口的打开是不同的 两者都有不同的标题,不同的选项和不同的位置。现在我应该等到模态。 是否可以等到任一模态窗口(WebElement)可见? 我已经在WebDriverWait方法中进行搜索,但是所有方法都必须等到特定WebElement可见或可单击为止。 我找不到更好的方法来等到任何一个都可见。 您能提出一种解决这种情况的方法吗?

  • 问题内容: 单击特定按钮时-我的测试站点将打开模式窗口。 但是模式窗口的打开是不同的 两者都有不同的标题,不同的选项和不同的位置。现在我应该等到模态。 是否可以等到任一模态窗口(WebElement)可见? 我已经在WebDriverWait方法中进行搜索,但是所有方法都必须等到特定的WebElement可见或可单击为止。 我找不到更好的方法来等到任何一个都可见。 您能提出一种解决这种情况的方法吗

  • 问题内容: 我正在将一个控制台应用程序转换为使用Swing的应用程序。目前,我希望我的程序执行与此类似的操作,如何通过使用或类似方法实现此目标? 简而言之; 在用户在文本字段中输入内容并按Enter之前,如何保持程序的执行。 问题答案: 更新: 因此,您要等待用户从GUI输入内容。这是可能的,但由于GUI在另一个线程中运行,因此需要进行 同步 。 因此,步骤如下: 创建一个“ holder”对象,

  • 我在寻找一种方法来等待一个窗口弹出,你不知道的名字。我在找这样的东西: