Firefox версия 56, драйвер gecko версии 0.19.0, jxl 2.6 и селен java 3.5.3 Отсутствие результатов тестирования при использовании testNG и Excel - PullRequest
0 голосов
/ 08 мая 2020

Я только что попробовал следующий пример кода, используя TestNG:

package tyu;

import java.util.concurrent.TimeUnit;
import org.testng.annotations.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class tyu {

  private WebDriver driver;
  private String baseUrl;


  @BeforeMethod
  public void setUp() throws Exception {
      System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\geckodriver-v0.19.0-win64\\geckodriver.exe");
      driver = new FirefoxDriver();
    baseUrl = "https://www.google.com";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

  @Test
  public void testUntitled() throws Exception {
    driver.get(baseUrl + "/");
    driver.findElement(By.name("q")).clear();
    driver.findElement(By.name("q")).sendKeys("apple");
    driver.findElement(By.name("btnK")).click();
  }

  @AfterMethod[enter image description here][1]
  public void tearDown() throws Exception {
    driver.quit();

  }
}

Следующий случай для данных, управляемых с использованием Excel:

package aa;
import java.io.FileInputStream;

import jxl.Sheet;
import jxl.Workbook; 
import org.junit.After;
import org.junit.Before;
import org.junit.Test; 
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class A
{
    Sheet s;
    WebDriver driver = new FirefoxDriver();

    @Before
    public void setUp()
    {
        System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\geckodriver-v0.19.0-win64\\geckodriver.exe");
           driver = new FirefoxDriver();
    }

    @Test
    public void searchGoogle() throws Exception
    {

        FileInputStream fi = new FileInputStream("F:\\selenium gateway\\gmail.xls ");
        Workbook w = Workbook.getWorkbook(fi);
        s = w.getSheet(0);
        for(int row=0; row <=s.getRows();row++)   
        {
            String search = s.getCell(0, row).getContents();
            String search1 = s.getCell(1, row).getContents();
            System.out.println("search "+search);
            driver.get("http://www.gmail.co.in");
            driver.findElement(By.id("Email")).clear();
            driver.findElement(By.id("Email")).sendKeys(search);            
            driver.findElement(By.id("next")).click();
            driver.findElement(By.id("Passwd")).sendKeys(search1);  
            driver.findElement(By.id("signIn")).click();
            Thread.sleep(3000);
        }
        }
    @After
    public void tearDown()
    {       driver.quit();      System.exit(0); 
    }  
}

Ошибка:

java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
    at com.google.common.base.Preconditions.checkState(Preconditions.java:754)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
    at org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:41)
    at org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:115)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:329)
    at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:207)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:103)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:99)
    at aa.A.<init>(A.java:15)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217)
    at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:542)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)

Я не могу получить результаты теста в вышеуказанных случаях. как я могу решить эту проблему?

...