最近学习使用TestNG写测试脚本,仿照的是乙醇的脚本,由于火狐没有装到默认路径,运行时总是报找不到路径的错误。QQ群里问了半天也没人回答,只好自己倒腾,最终调试通过的代码如下。
package com.testgoogle;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.*;
public class GoogleTest {
WebDriver driver;
@BeforeTest
public void setup(){
System.setProperty("webdriver.firefox.bin", "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
}
@Parameters({"browser"})
@BeforeTest
public void setupBrowser(String browser){
if (browser.equals("firefox")){
driver = new FirefoxDriver();
} else {
driver = new ChromeDriver();
}
}
@Parameters({ "url", "keyword" })
@Test
public void search(String url, String keyword) {
driver.get(url);
WebElement element = driver.findElement(By.name("q"));
element.sendKeys(keyword);
element.submit();
Assert.assertTrue(driver.getTitle().contains(keyword), "Title is wrong!");
}
}
调试过程中发现system.setproperty()必须放在@BeforeTest的一个方法里,不能直接贴代码也不能放在@BeforeClass之类的位置。当然放在@Test的方法里也可以,但是不太规范。