首页 > 其他分享 >.net OpenQASelenium 等待常见的处理方式

.net OpenQASelenium 等待常见的处理方式

时间:2023-03-10 23:35:07浏览次数:37  
标签:return 常见 driver var OpenQASelenium new net Until wait

.net Selenium 等待常见的处理方式

显示等待

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使用ExpectedConditions(已过期)

 public bool waitElementClick()
        {
            System.Threading.Thread.Sleep(3000);
            return true;
        }



WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            //wait.Until<bool>(e=>waitElementClick()); //等待方法执行完成
 wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div/button"))); //等待
wait.Until(ExpectedConditions.UrlToBe(By.XPath("http://")));//等待跳转到摸个页面


4.通过DotNetSeleniumExtras.WaitHelpers判断

Install-Package DotNetSeleniumExtras.WaitHelpers

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


隐式等待
 driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(8);
 driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(8);


强制等待

sleep()

标签:return,常见,driver,var,OpenQASelenium,new,net,Until,wait
From: https://www.cnblogs.com/l1pe1/p/17204992.html

相关文章

  • .net Selenium 截图
    2)使用PackageManager命令安装PM>Install-PackageSelenium.Support-Version3.141.0PM>Install-PackageSelenium.Chrome.WebDriver-Version79.0.03)使用.NETCLI命令......
  • Docker Network命令
    列出所有网络--dockernetworkls#dockernetworklsNETWORKIDNAMEDRIVERSCOPE3a7ff82cf61bbridgebridgelocal81ec257be06bhost......
  • Optimal ANN-SNN conversion for high-accuracy and ultra-low-latency spiking neura
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!PublishedasaconferencepaperatICLR2022 ABSTRACT脉冲神经网络(SNN)因其独特的低功耗属性和对神经形......
  • NET - DependencyInjection - Scrutor
    1安装1.1命令PM>NuGet\Install-PackageScrutor-Version4.2.12使用2.1装配扫描Scrutor有两个针对服务集合 ServiceCollection 类的扩展方法:Scan 和Decor......
  • Ansible常见特殊模块用法记录
    Ansible常见特殊模块用法记录1、delegate_to:将某一个任务委托给指定主机-name:"getinventory_hostname"shell:echo{{inventory_hostname}}$HOSTNAME>>/tmp/......
  • 4_Tomcat常见配置
    ​ Tomcat配置文件介绍Tomcat的配置文件由4个xml组成,分别是context.xml、web.xml、server.xml、tomcat-users.xml。每个文件都有自己的功能与配置方法。context.xml......
  • 4_Tomcat常见配置
    ​ Tomcat配置文件介绍Tomcat的配置文件由4个xml组成,分别是context.xml、web.xml、server.xml、tomcat-users.xml。每个文件都有自己的功能与配置方法。context.xml......
  • Shell脚本中常见的特殊命令用法记录
    Shell脚本中常见特殊命令用法记录1、信号捕获:traptrap"commands"signals#接收到signals指定的信号时,执行commands命令。trapsignals#如果没有指定命令就是恢复s......
  • J4、ResNet与DenseNet结合探索
    ......
  • C# ASP.NET MVC 配置允许跨域访问
    在web.config文件中的system.webServer节点下增加如下配置<httpProtocol><customHeaders><addname="Access-Control-Allow-Origin"value="*"/>......