有没有一种方法可以执行 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));
}
当我试着写这段代码时,我得到了这个错误。
可能晚了,但希望能帮到别人。只要把你最后一行第3个选项的语法改成如下。
IWebElement element = wait.Until(d => webElement.FindElement(by));