预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

WebDriver:高级用法 显式和隐式等待 等待是在执行下一步骤之前让自动任务等定量的时间。 显示等待 一个显式等待就是在继续执行代码之前编码等待定义一个特定条件发生。最糟糕的例子是Thread.sleep(),这设置了一个准确的等待时间。WebDriver提供了一些方便的方法帮助您些代码来等待要求的时间。WebDriverWait和ExpectedCondition的结合就是一种实现的方法。 WebDriverdriver=newFirefoxDriver(); driver.get("http://somedomain/url_that_delays_loading"); WebElementmyDynamicElement=(newWebDriverWait(driver,10)) .until(newExpectedCondition<WebElement>(){ @Override publicWebElementapply(WebDriverd){ returnd.findElement(By.id("myDynamicElement")); }}); 在抛出TimeoutException之前这会等待最多10秒钟,或者它找到了元素,在0-10秒之间返回。WebDriverWait默认每500毫秒调用ExpectedCondition直到它成功返回。ExpectedCondition类型的成功返回是布尔值true或非null的返回值。 ExpectedConditions 有些自动化web浏览器时常用的条件。下面列出的是每个实现。Java恰巧有方便的方法,因此您不需要编写一个ExpectedCondition类自己或为它们创建自己的实用程序。 元素可点击–元素显示并且可用。 WebDriverWaitwait=newWebDriverWait(driver,10); WebElementelement=wait.until(ExpectedConditions.elementToBeClickable(By.id("someid"))); HYPERLINK"http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html"ExpectedConditions类中包含了一组与定义条件,可用于WebDriverWait 隐式等待 隐式等待告诉WebDriver一段特定的时间轮训一下DOM,来查找一个元素或者元素组,如果它们没有马上找到的话。默认设置是0。一旦设置,这个隐式等待会在WebDriver对象实例的整个生命周期起作用。 WebDriverdriver=newFirefoxDriver(); driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS); driver.get("http://somedomain/url_that_delays_loading"); WebElementmyDynamicElement=driver.findElement(By.id("myDynamicElement")); RemoteWebDriver 截屏 importjava.io.File; importjava.net.URL; importorg.openqa.selenium.OutputType; importorg.openqa.selenium.TakesScreenshot; importorg.openqa.selenium.WebDriver; importorg.openqa.selenium.remote.Augmenter; importorg.openqa.selenium.remote.DesiredCapabilities; importorg.openqa.selenium.remote.RemoteWebDriver; publicclassTesting{ publicvoidmyTest()throwsException{ WebDriverdriver=newRemoteWebDriver( newURL("http://localhost:4444/wd/hub"), DesiredCapabilities.firefox()); driver.get("http://www.google.com"); //RemoteWebDriverdoesnotimplementtheTakesScreenshotclass //ifth