当前位置: 首页 > 知识库问答 >
问题:

C#硒'预期条件过时'

扶誉
2023-03-14

当试图显式地等待一个元素使用预期条件变得可见时,Visual Studio警告我,它现在已经过时,很快就会从Selenium中删除。

实现相同结果的当前/新方法是什么?

var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 30));
var element = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("content-section")));

共有3个答案

容鸿畴
2023-03-14

这很简单。等一下。直到(ExpectedConditions.element可见(By.Id(“内容部分”));

Wait.Until(c => c.FindElement(By.Id("content-section")));
刘昌翰
2023-03-14

如果您不想下载额外的NuGet包,那么声明您自己的函数(或条件)非常容易,尤其是使用lambda表达式,例如。

var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 30));
var element = wait.Until(condition =>
{
    try
    {
        var elementToBeDisplayed = driver.FindElement(By.Id("content-section"));
        return elementToBeDisplayed.Displayed;
    }
    catch (StaleElementReferenceException)
    {
        return false;
    }
    catch (NoSuchElementException)
    {
        return false;
    }
});

这也是非常通用的,因为现在可以计算任何类型的布尔表达式。

傅朗
2023-03-14

使用NuGet搜索DotNetSeleniumExtras。WaitHelpers,并将该命名空间导入到类中。现在您可以执行以下操作:

var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 30));
var element = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.Id("content-section")));

在IDE中,警告将消失。

 类似资料:
  • 问题内容: 我将Selenium 2 / WebDriver与Python API结合使用,如下所示: 我想等 要么 返回一个结果() 或 “未找到”字符串。那可能吗?有点儿: 我知道我可以使用CSS选择器()来做到这一点,但是有没有办法使用Selenium预期条件方法来做到这一点? 问题答案: 我这样做是这样的: 然后像这样… 显然,同样实现一个类也是微不足道的。 Nb。的块为奇数。我很困惑,因

  • 问题内容: 在Python中编写selenium测试时,我习惯于使用Explicit Waits来等待页面加载,或等待元素可见或可点击等: 这里的关键概念是提供等待的 期望条件 ,有多种类型: 等等 与使用带有硬编码时间间隔的s 相比,使用期望条件使代码更清洁,更可靠。 现在,我们正在将端到端测试基础架构转换为很多。 是否有类似的量角器,因为在或 ?如果不是,显式等待in中条件的规范方法是什么?

  • 我第一次做硒测试。在主页上,我调用了一些AJAX,我希望Selenium等待元素加载完成。我不确定它是否有效,但我只是键入selenium,waitForCondition可以选择。 无论我选择什么,它总是返回“false”。我现在连等待条件都不工作吗? 我如何测试它是否有效?在这些代码中我做错了什么? 如果由自己的类实现,则返回“true” isElementPresent(By.xpath(“

  • Html树: Xpath://table[@class='ur MatrixLayout urhtmltableReset']//tr//table//tr//td//div//div/span[contains(text(),'revisations')]

  • 问题内容: 我将Selenium 2 / WebDriver与Python API结合使用,如下所示: 我想等 要么 返回一个结果() 或 “未找到”字符串。那可能吗?有点儿: 我知道我可以使用CSS选择器()来做到这一点,但是有没有办法使用Selenium预期条件方法来做到这一点? 问题答案: 我这样做是这样的: 然后这样称呼… 显然,同样实现一个类也是微不足道的。 Nb。的块为奇数。我很困惑,

  • 我试图重写并为页脚返回不同的视图类型,但在函数中进行整数比较失败: 此图像显示了一个调试会话,其中输入为21,私有列表的大小为21,但是当我按下“step over”时,会跳过条件代码。 如果两个整数相等,为什么返回false? 我在运行之前清理并重建了我的项目。 更新: 当整数被硬编码时,它可以工作: 这是完整的适配器:https://gist.github.com/fergusom/79C6D