首页 .Net .NET(C#) Selenium操作调用浏览器判断页面元素(ElementIsVisible)可见的方法

.NET(C#) Selenium操作调用浏览器判断页面元素(ElementIsVisible)可见的方法

1、使用Until和匿名函数的方法

var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 30));
wait.IgnoreExceptionTypes(typeof(NoSuchElementException), typeof(ElementNotVisibleException));
var element = wait.Until(() =>
{
var e = Driver.FindElement(By.Id("content-section"));
if(e.Displayed)
return e;
});

2、添加扩展方法WaitUntilVisible来判断

public static IWebElement WaitUntilVisible(
this IWebDriver driver,
By itemSpecifier,
int secondsTimeout = 10)
{
var wait = new WebDriverWait(driver, new TimeSpan(0, 0, secondsTimeout));
var element = wait.Until<IWebElement>(driver =>
{
try
{
var elementToBeDisplayed = driver.FindElement(itemSpecifier);
if(elementToBeDisplayed.Displayed)
{
return elementToBeDisplayed;
}
return null;
}
catch (StaleElementReferenceException)
{
return null;
}
catch (NoSuchElementException)
{
return null;
}
});
return element;
}

调用扩展方法:

ChromeDriver driver = new ChromeDriver();
//...省略逻辑代码
element = driver.WaitUntilVisible(By.XPath("//input[@value='Save']"));

3、通过DotNetSeleniumExtras.WaitHelpers判断

1) Nuget安装引用DotNetSeleniumExtras.WaitHelpers

使用nuget搜索DotNetSeleniumExtras.WaitHelpers,并且导入命名空间。

相关文档VS(Visual Studio)中Nuget的使用

或者

Install-Package DotNetSeleniumExtras.WaitHelpers

2) 判断是否显示的代码

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

相关文档:

.NET Core(C#) 操作selenium(Chrome)对网页截完整页面长图的方法及示例代码

.NETseleniumWebDriver操作调用浏览器后台执行Js(JavaScript)代码



特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。