2015-06-09 4 views
0

Привет, я новичок в selenium, я пытался использовать TestNG с IE webdriver, Теперь я не могу создать экземпляр IE-драйвера непосредственно под классом (Не основным методом). Когда я делаю это, я получаю следующую ошибку: Множественные маркеры в этой строке - Синтаксическая ошибка на токенах, вместо ожидаемого FormalParameter - Ошибка синтаксиса на токенах (-ах), неправильная конструкция (-ы) - Ошибка синтаксиса на токене "" webdriver .ie.driver "", недействительныйTestNG с IE webdriver

Если я затем надел метод с аннотацией @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 { 
 
\t 
 
\t @BeforeSuite 
 
\t public void SetDriverPaths() 
 
\t { 
 
\t \t File IEDriver = new File("C:\\Users\\e545896\\Desktop\\SeleniumJars\\IE Driver\\IEDriverServerX64_2.44.0.exe"); 
 
\t \t System.setProperty("webdriver.ie.driver", IEDriver.getAbsolutePath()); 
 
\t \t WebDriver Driver = new InternetExplorerDriver(); 
 
\t } 
 
\t 
 
    
 
    @Test 
 
    public void tester() 
 
    { 
 
\t Driver.findElement(By.id("keywordInput")).sendKeys("Sandhya"); 
 
\t Driver.findElement(By.id("keywordInput")).sendKeys(Keys.ENTER); 
 
\t Assert.assertEquals(Driver.findElement(By.xpath(".//*[@id='search_results']/h1/span/strong")).getText(), "Sandhya"); 
 
    } 
 
    
 
    @BeforeTest 
 
    public void RMSLogin() 
 
    { 
 
\t Driver.navigate().to("http://www.ssga.statestr.com/weblogic/intranet/Home"); 
 
\t \t 
 
    } 
 
    
 
    @AfterTest 
 
    public void closeBrowser() 
 
    { 
 
\t 
 
\t Driver.quit(); 
 
\t 
 
    } 
 
    
 
}

+0

В этом кодексе я вижу ошибки при каждом методе, как водитель а не публичный объект в классе. Пожалуйста помоги. –

+0

Что случилось с созданием нового драйвера в каждом методе тестирования? – Gimby

+0

Gimby: Мои тесты являются типами продолжения. Как и в каждом тесте, начинайте с моего предыдущего теста. Не имея экземпляра драйвера в очень методе тестирования, повторите предыдущие шаги. Если есть какое-то лучшее решение для этого подхода, пожалуйста, дайте мне знать. –

ответ

2

INIT вы WebDriver как это, то вы можете использовать его в любом методе с this.driver.

public class FirstTestNGclass { 

    public WebDriver driver; 

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

    // .... 

} 
+0

Спасибо Peetya, но после того, как я использую это, у меня есть другая проблема, у класса Asert TestNG есть проблема с компиляцией: Assert не может быть разрешен или не является полем. Как я могу справиться с этим сейчас! –

+0

Я импортировал 'import org.testng.Assert; в моем коде. но все же эта проблема видна –

+0

@SandyQAProffessional: похоже, что в вашем проекте отсутствует библиотека testNG. Попробуйте добавить его вручную или если вы используете Eclipse, загрузите плагин из http://testng.org/doc/download.html – peetya

0

Одним из простого решения этой проблемы заключается в использовании общего класса драйвера для вашего тестового набора ... так что мы можем использовать тот же экземпляр драйвера во всех классах

класс Common водителя

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")); 

Надеется, что это поможет вам ... если у вас есть какие-либо вопросы Просьбы вернуть

Смежные вопросы