TestNG与IE webdriver

时间:2015-06-09 12:56:38

标签: java selenium testng

嗨我是selenium的新手,我试图使用TestNG和IE webdriver,现在我无法直接在类下面实例化IE驱动程序(不是主要的方法)。当我这样做时,我得到以下错误: 此行有多个标记      - 令牌上的语法错误,而不是FormalParameter      - 令牌上的语法错误,错放的构造(s)      - 令牌上的语法错误"" webdriver.ie.driver"",无效

如果我然后使用@BeforeSuite注释添加方法,我需要将驱动程序传递给类中的每个其他测试方法。有没有办法让我可以通过这个传递驱动程序对象。

在下面找到我正在使用的示例代码:



package FirstTestNGPackage;

import java.io.File;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class FirstTestNGclass {
	
	@BeforeSuite 
	public void SetDriverPaths()
	{
		File IEDriver = new File("C:\\Users\\e545896\\Desktop\\SeleniumJars\\IE Driver\\IEDriverServerX64_2.44.0.exe");
		System.setProperty("webdriver.ie.driver", IEDriver.getAbsolutePath());
		WebDriver Driver = new InternetExplorerDriver();
	}
	
   
  @Test
  public void tester()
  {
	  Driver.findElement(By.id("keywordInput")).sendKeys("Sandhya");
	  Driver.findElement(By.id("keywordInput")).sendKeys(Keys.ENTER);
	  Assert.assertEquals(Driver.findElement(By.xpath(".//*[@id='search_results']/h1/span/strong")).getText(), "Sandhya");
  }
  
  @BeforeTest
  public void RMSLogin() 
  {
	  Driver.navigate().to("http://www.ssga.statestr.com/weblogic/intranet/Home");  
	  	  
  }
  
  @AfterTest
  public void closeBrowser()
  {
	
	  Driver.quit();
	  
  }
  
}




2 个答案:

答案 0 :(得分:2)

启动你这样的webdriver然后你可以在this.driver的每个方法中使用它。

public class FirstTestNGclass {

    public WebDriver driver;

    @BeforeSuite 
    public void SetDriverPaths()
    {
        // ....
        this.driver = new InternetExplorerDriver();
    }

    // ....

}

答案 1 :(得分:0)

解决此问题的一个简单方法是为测试套件使用通用驱动程序类...以便我们可以在所有类中使用相同的驱动程序实例

常见的驱动程序类

public class Driver {

    public static WebDriver driver=null;



    public static WebDriver startdriver(String browser){


        if(browser.equalsIgnoreCase("Chrome")){

        System.setProperty("webdriver.chrome.driver", "path");

        driver=new ChromeDriver();

        }else if(browser.equals("IE")){

        System.setProperty("webdriver.ie.driver", IEDriver.getAbsolutePath());

        driver=new InternetExplorerDriver();

        }
        return driver;

        }

    }

您可以像这样创建一个驱动程序实例

Driver.startdriver("IE");

您可以使用类名为classname.instance的驱动程序对象

Driver.driver.findElement(By.xpath("path"));

希望这对您有所帮助...如果您有任何疑问请退回