网站建设英语要几级,整站seo排名外包,wordpress 产品管理系统,网上订酒店 网站开发目录 1、强制等待
2、隐式等待
3、显示等待 1、强制等待
强制等待是在程序中直接调用Thread.sleep(timeout) ,来完成的#xff0c;该用法的优点是使用起来方便#xff0c;语法也比较简单#xff0c;缺点就是需要强制等待固定的时间#xff0c;可能会造成测试的时间过…目录 1、强制等待
2、隐式等待
3、显示等待 1、强制等待
强制等待是在程序中直接调用Thread.sleep(timeout) ,来完成的该用法的优点是使用起来方便语法也比较简单缺点就是需要强制等待固定的时间可能会造成测试的时间过长。 private static void test02() throws InterruptedException {ChromeOptions optionsnew ChromeOptions();options.addArguments(--remote-allow-origins*);WebDriver webDrivernew ChromeDriver(options);webDriver.get(https://www.baidu.com/);webDriver.findElement(By.cssSelector(#kw)).sendKeys(软件测试);webDriver.findElement(By.cssSelector(#su)).click();webDriver.findElement(By.cssSelector(#kw)).clear();sleep(3000);webDriver.findElement(By.cssSelector(#kw)).sendKeys(前端vue);webDriver.findElement(By.cssSelector(#su)).click();}
引入等待的原因是很多时候程序运行的速度是大于网页页面的渲染速度的所以需要引入等待机制。
2、隐式等待
如果等待时间是1天使用强制等待就会等待1天的时间对于隐式等待来说它最多等待1天。因为如果我们在这一天内如果获取了页面上的元素那么隐式等待就会不再等待下去而是直接开始执行后续的代码了。 如果超过1天还没有获取到页面元素那么就会报错。
使用的语句
webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.DAYS); 其中使用隐式等待需要使用驱动中的manage方法然后调用timeouts方法的implicitlyWait方法。
其中比较重要的就是implicitlyWait了可以看一下其源码 可以看到implicitlyWait方法的参数一个是long类型也就是指定的数字后面的是TimeUnit类型也就是指定单位。 这里我们用实际代码测试一下
private static void test02() throws InterruptedException {ChromeOptions optionsnew ChromeOptions();options.addArguments(--remote-allow-origins*);WebDriver webDrivernew ChromeDriver(options);webDriver.get(https://www.baidu.com/);webDriver.findElement(By.cssSelector(#kw)).sendKeys(软件测试);webDriver.findElement(By.cssSelector(#su)).click();webDriver.findElement(By.cssSelector(#kw)).clear();//sleep(3000);//隐式等待1天webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.);webDriver.findElement(By.cssSelector(#kw)).sendKeys(前端vue);webDriver.findElement(By.cssSelector(#su)).click();}
我们设置的等待一天但是对于隐式等待来说一下程序就完成了。因为等待后面的元素直接从页面获取得到所以无需等待1天即可完成测试。 3、显示等待
举个例子比如我们要在百度搜索的首页来判断最下方的元素是否是超链接是否可以点击 点开该方法可以看到有很多用来判断元素的方法 其中我们要使用的是判断元素是否可以被点击所以使用elementToBeClickable方法 private static void test07() {//创建驱动WebDriver webDrivernew ChromeDriver();//打开百度webDriver.get(https://www.baidu.com/);//判断元素是否可以被点击WebDriverWait webDriverWaitnew WebDriverWait(webDriver,3000);webDriverWait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(#bottom_layer div p:nth-child(7) a)));}
没有报错说明是满足条件的如果我们设置了一个不存在的元素等到设置的等待时间过了就会报错了NoSuchElementException 总结一下
显示等待使用语法比较复杂但是可以指定某一个元素进行等待减少了整个测试等待的时间。