Selenium2设置隐式等待和显示等待

Selenium2设置隐式等待和显示等待

1. 设置显示等待

Java代码:

1
2
3
4
5
public   static   WebElement WaitForElement(WebDriver driver, String locator)
     {
         WebElement targetElement = ( new   WebDriverWait(driver, 10 )).until(ExpectedConditions.presenceOfElementLocated(By.xpath(locator)));
         return   targetElement;  
     }

  

 

1 WebDriver driver = new FirefoxDriver(); driver.get("http://somedomain/url_that_delays_loading"); 
2 WebElement myDynamicElement = (new WebDriverWait(driver, 10)) .until(ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement"))); 

 

 

2. 设置隐式等待

Java代码:

1
2
3
4
WebDriver driver =  new   FirefoxDriver();
driver.manage().timeouts().implicitlyWait( 10 , TimeUnit.SECONDS);
driver.get( "http://i8xiaoshi.com" );
WebElement myDynamicElement = driver.findElement(By.id( "xxxx" ));

 

1 WebDriver driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get("http://somedomain/url_that_delays_loading"); 
2 WebElement myDynamicElement = driver.findElement(By.id("myDynamicElement")); 
Selenium是一个广泛使用的自动化测试框架,它支持多种浏览器。其中,显示等待(explicit waits)等待(implicit waits)是用于处理网页元素加载时间不确定的情况。 **显示等待(Explicit Waits)**: 显示等待是一种显的暂停操作,在指定的条件满足之前,会持续等待一段时间。它需要我们明确地设置等待的时间判断条件。例如,我们可以设置等待某个特定元素(如通过`find_element_by_*()`方法找到的元素)出现、变为可用(比如元素可见或者某些属性改变),当条件成立时才会继续执行后续步骤。这种方可以避免因为网络延迟或其他不确定性导致的程序崩溃。 ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "myElement")) ) ``` 这里,driver是我们正在控制的浏览器实例,10是等待的最大秒数,`EC.presence_of_element_located()`则定义了我们要等待的条件。 **等待(Implicit Waits)**: 等待则是设置全局的默认查找超时时间。在元素定位失败时,Selenium会在接下来的操作前等待一定的时间,直到找到匹配的元素。如果在这段时间内仍然找不到元素,等待就会结束,并抛出异常。设置等待通常适用于不太确定元素何时会出现的场景,但过度的等待可能会延长整体脚本运行时间。 ```python driver.implicitly_wait(5) # 设置默认查找时间为5秒 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值