Roc*_*e C 15 c# selenium selenium-webdriver
我正在尝试为Selenium编写自己的ExpectedConditions,但我不知道如何添加新的.有人有例子吗?我在网上找不到任何教程.
在我目前的情况下,我想等到元素存在,可见,启用并且没有attr"aria-disabled".我知道这段代码不起作用:
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(seconds));
return wait.Until<IWebElement>((d) =>
{
return ExpectedConditions.ElementExists(locator)
&& ExpectedConditions.ElementIsVisible
&& d.FindElement(locator).Enabled
&& !d.FindElement(locator).GetAttribute("aria-disabled")
}
Run Code Online (Sandbox Code Playgroud)
编辑:一些额外的信息:我遇到的问题是使用jQuery选项卡.我在禁用的选项卡上有一个表单,它将在选项卡变为活动状态之前开始填写该选项卡上的字段.
Jim*_*ans 33
"预期条件"只不过是使用lambda表达式的匿名方法.自.NET 3.0以来,这些已经成为.NET开发的主要内容,尤其是LINQ的发布.由于绝大多数.NET开发人员都熟悉C#lambda语法,因此WebDriver .NET绑定的ExpectedConditions实现只有几种方法.
像你要求的那样创造一个等待会是这样的:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until<IWebElement>((d) =>
{
IWebElement element = d.FindElement(By.Id("myid"));
if (element.Displayed &&
element.Enabled &&
element.GetAttribute("aria-disabled") == null)
{
return element;
}
return null;
});
Run Code Online (Sandbox Code Playgroud)
如果你对这种结构没有经验,我会建议你这样做.它很可能在未来的.NET版本中变得更加普遍.
| 归档时间: |
|
| 查看次数: |
19067 次 |
| 最近记录: |