c#和Java和python设置selenium超时时间

c#

//设置页面加载超时时间
this.driver.Manage().Timeouts().PageLoad.Seconds.Equals(TimeSpan.FromSeconds(300));
//隐式等待
this.driver.Manage().Timeouts().ImplicitWait.Seconds.Equals(TimeSpan.FromSeconds(300));
//异步脚本执行超时时间
this.driver.Manage().Timeouts().AsynchronousJavaScript.Hours.Equals(TimeSpan.FromHours(1));
//显示等待(推荐使用,节省时间,提高效率)
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement element = wait.Until((d) =>
{
     try
     {
          return driver.FindElement(By.Name("word"));
     }
     catch (Exception ex)
     {
          return null;
     }
});

java

//TimeOut三个常见的接口
implicitlyWait(long time, TimeUnit unit);
setScriptTimeout(long time, TimeUnit unit);
pageLoadTimeout(long time, TimeUnit unit);
driver.manage().timeouts().pageLoadTimeout(15, TimeUnit.SECONDS);
driver.manage().timeouts().setScriptTimeout(3,TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(120, TimeUnit.SECONDS);

//java selenium三种等待方式
//强制等待
Thread.sleep(3000);
//隐式等待
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
//显式等待
//10秒内 出现.red_box元素就往下执行,如果10秒过后还没出现就跳出
WebDriverWaitwait=new WebDriverWait(driver, 10);
WebElement wl= wait.until(new ExpectedCondition<WebElement>() {  
            publicWebElement apply(WebDriver d) {  
                  return d.findElement(By.cssSelector(".red_box"));  
            } 
        });

python

driver.set_page_load_timeout(time)  # 设置页面加载超时
driver.set_script_timeout(time)  # 设置页面异步js执行超时
driver.implicitly_wait(time) # 隐式等待
WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.ID, 'wrapper'))) # 显式等待1
WebDriverWait(driver, 3).until_not(EC.presence_of_element_located((By.ID, 'wrapper1'))) # 显式等待2

expected_conditions类提供的预先判断条件:https://blog.csdn.net/weixin_41624982/article/details/89048936

posted @ 2020-11-17 20:39  轩辕吊雷  阅读(889)  评论(0)    收藏  举报