我如何在C# Selenium中等待来自另一个元素的元素?

问题描述 投票:0回答:1

有没有一种方法可以执行 wait.Until 通过某种方式从另一个元素中搜索元素,而不是从整个驱动中搜索?

例如:我不能修改

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSec));

IWebElement element = wait.Until(ExpectedConditions.ElementExists(by));

我不能修改 'by' 太过具体,当它在驱动程序下搜索时,会得到错误的元素。

IWebElement element = wait.Until(drv => drv.FindElement(by));

这个选项也会在 driver.我想要这样的东西。

public static IWebElement WaitElement(this IWebElement webElement, IWebDriver driver, By by, int timeoutInSec = 5)
    {
        try
        {
            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSec));
                IWebElement element = wait.Until(webElement.FindElement(by));
        }

当我试着写这段代码时,我得到了这个错误。

在这里输入图片描述

c# selenium wait
1个回答
0
投票

可能晚了,但希望能帮到别人。只要把你最后一行第3个选项的语法改成如下。

IWebElement element = wait.Until(d => webElement.FindElement(by));
© www.soinside.com 2019 - 2024. All rights reserved.