设置Selenium WebDriver的默认执行速度

我正在使用webdriver运行一些GUI测试。我直接从Selenium

IDE导出了一些测试。在此测试中,由于加载了下拉菜单,我不得不降低IDE的运行速度。如何在Selenium Webdriver中减慢测试速度?我已经放了

 driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);

而且它保持了高速运转。我知道sleep选项,但这不是我想要的,我想更改webdriver的默认执行速度。这是我的代码:

import static org.junit.Assert.assertFalse;

import static org.junit.Assert.assertTrue;

import static org.junit.Assert.fail;

import java.util.concurrent.TimeUnit;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import org.openqa.selenium.Alert;

import org.openqa.selenium.By;

import org.openqa.selenium.NoAlertPresentException;

import org.openqa.selenium.NoSuchElementException;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

public class ProfileCheck {

private WebDriver driver;

private String baseUrl;

private boolean acceptNextAlert = true;

private final StringBuffer verificationErrors = new StringBuffer();

@Before

public void setUp() throws Exception {

driver = new FirefoxDriver();

baseUrl = "http://localhost:8080";

driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);

}

@Test

public void testProfileCheck() throws Exception {

System.out.println("Test if profiles have access to the screen");

// Administrateur (has access)

driver.get(baseUrl + "/Dashboard/index.jsp?lang=en");

driver.findElement(By.cssSelector("input[name=combo_profile]")).click();

driver.findElement(

By.cssSelector(".x-boundlist-item:contains('Administrateur')"))

.click();

driver.get(baseUrl + "/Params/ClientCutOff/index.jsp?lang=en");

try {

assertTrue(driver.getTitle().matches("^[\\s\\S]*ClientCutOff$"));

} catch (Error e) {

verificationErrors.append(e.toString());

}

// Habilitation (no access)

driver.get(baseUrl + "/Dashboard/index.jsp?lang=en");

driver.findElement(By.cssSelector("input[name=combo_profile]")).click();

driver.findElement(

By.cssSelector(".x-boundlist-item:contains('Habilitation')"))

.click();

driver.get(baseUrl + "/Params/ClientCutOff/index.jsp?lang=en");

try {

assertFalse(driver.getTitle().matches("^[\\s\\S]*ClientCutOff$"));

} catch (Error e) {

verificationErrors.append(e.toString());

}

}

@After

public void tearDown() throws Exception {

try {

Thread.sleep(5000);

driver.quit();

} catch (Exception e) {

}

String verificationErrorString = verificationErrors.toString();

if (!"".equals(verificationErrorString)) {

fail(verificationErrorString);

}

}

private boolean isElementPresent(By by) {

try {

driver.findElement(by);

return true;

} catch (NoSuchElementException e) {

return false;

}

}

private boolean isAlertPresent() {

try {

driver.switchTo().alert();

return true;

} catch (NoAlertPresentException e) {

return false;

}

}

private String closeAlertAndGetItsText() {

try {

Alert alert = driver.switchTo().alert();

String alertText = alert.getText();

if (acceptNextAlert) {

alert.accept();

} else {

alert.dismiss();

}

return alertText;

} finally {

acceptNextAlert = true;

}

}

}

回答:

不要使用sleep

public static WebElement findElement(WebDriver driver, By selector, long timeOutInSeconds) {

WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);

wait.until(ExpectedConditions.presenceOfElementLocated(selector));

return findElement(driver, selector);

}

以上是 设置Selenium WebDriver的默认执行速度 的全部内容, 来源链接: utcz.com/qa/428359.html

回到顶部