首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在执行第二个注释时,我刚开始测试ng并面临空指针异常。第一个注释很好

在执行第二个注释时,我刚开始测试ng并面临空指针异常。第一个注释很好
EN

Stack Exchange QA用户
提问于 2017-05-26 08:37:33
回答 2查看 1.5K关注 0票数 0

我的代码:

代码语言:javascript
复制
public class NewTest {
    public static WebDriver driver; 

@BeforeSuite(alwaysRun=true)
public void intiate() {
          System.setProperty("webdriver.chrome.driver", "C:\\selenium\\chromedriver.exe");
          WebDriver driver = new ChromeDriver();
          String Appurl= "http://toolsqa.com/automation-practice-form/";
          driver. manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS );
          driver.navigate().to(Appurl);

      } 


  @Test  (alwaysRun=true)
  public void Enterusernamedetails() {  
/*    System.setProperty("webdriver.chrome.driver", "C:\\selenium\\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      String Appurl= "http://toolsqa.com/automation-practice-form/";
      driver. manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS );
      driver.navigate().to(Appurl);*/

      WebElement UsrName = driver.findElement(By.name("firstname"));
      if(UsrName!=null)
      {
          UsrName.sendKeys("Hemamalini");
          System.out.println("First name has been entered");
      }
      else
      {
          System.out.println("First name element is not visible");
      }


  WebElement lastName = driver.findElement(By.name("lastname"));
  if(lastName!=null)
  {
      lastName.sendKeys("K");
      System.out.println("Last name has been entered");
  }
  else
  {
      System.out.println("Last name element is not visible");
  }

  WebElement radbtnSex = driver.findElement(By.id("sex-0"));
  if(radbtnSex!=null)
  {
      radbtnSex.click();
      System.out.println("Sex radio button has been clicked");
  }
  else
  {
      System.out.println("Sex radio button element is not been clicked");
  }

  WebElement radbtnExper = driver.findElement(By.id("exp-2"));
  if(radbtnExper!=null)
  {
      radbtnExper.click();
      System.out.println("Experience radio button has been clicked");
  }
  else
  {
      System.out.println("Experience radio button element is not been clicked");
  }

  WebElement txtDatePicker = driver.findElement(By.id("datepicker"));
  if(txtDatePicker!=null)   
  {
      txtDatePicker.sendKeys("10/11/2017");
      System.out.println("Date has been entered");
  }
  else
  {
      System.out.println("Date element is not visible");
  }

  WebElement chkbox = driver.findElement(By.id("profession-1"));
  if(chkbox!=null)
  {
      chkbox.click();
      System.out.println("Profession checkbox has been clicked");
  }
  else
  {
      System.out.println("Profession checkbox element is not been clicked");
  }

  WebElement chkboxtool = driver.findElement(By.id("tool-2"));
  if(chkboxtool!=null)
  {
      chkboxtool.click();
      System.out.println("Automation tool checkbox has been clicked");
  }
  else
  {
      System.out.println("Automation tool element is not been clicked");
  }

  Select drpContinents = new Select(driver.findElement(By.id("continents")));
  if(drpContinents!=null)
  {
      drpContinents.selectByVisibleText("Australia");
      System.out.println("Automation tool checkbox has been clicked");

  }

  Select drpCommands = new Select(driver.findElement(By.id("selenium_commands")));
  if(drpCommands!=null)
  {
      drpCommands.selectByVisibleText("Switch Commands");
      System.out.println("command has been clicked");
  }

      WebElement button = driver.findElement(By.id("submit"));
      if(button!=null)
      {
          button.click();
          System.out.println("button has been clicked");
      }
      else
      {
          System.out.println("button element is not been clicked");
      }

      WebElement uploadfile = driver.findElement(By.id("photo"));
      if(uploadfile!=null)
      {
          uploadfile.sendKeys("C:\\Users\\391387.CTS\\Documents\\New folder\\Spritz_Selenium_Grid_Setup_v 2 0.docx");
          System.out.println("document has been uploaded");
      }
      else
      {
          System.out.println("button document has not been uploaded");
      }

      driver.quit();
  }

}
EN

回答 2

Stack Exchange QA用户

发布于 2017-05-26 09:20:53

问题是您已经多次启动WebDriver driver

  1. public static WebDriver driver;
  2. @BeforeSuite(alwaysRun=true)中见WebDriver driver = new ChromeDriver();
  3. @Test (alwaysRun=true)中见WebDriver driver = new ChromeDriver();

这里有3次启动驱动程序,按照TestNG的要求,@BeforeSuites首先运行。更改代码如下:

  1. public static WebDriver driver = null;
  2. @BeforeSuite(alwaysRun=true)中:将下面的代码替换为WebDriver driver = new ChromeDriver(); //WebDriver驱动程序=新的ChromeDriver();//旧行驱动程序=新的ChromeDriver();//新行
  3. 在代码//System.setProperty("webdriver.chrome.driver",“C:\selenium\chromedriver.exe”下面的@Test (alwaysRun=true):注释/删除;//ChromeDriver=新的ChromeDriver();

希望您理解这是基本的Java代码错误。如果你需要更多的帮助,请告诉我。

票数 1
EN

Stack Exchange QA用户

发布于 2017-05-31 07:49:47

在我们的项目中,我们使用单独的类来为我们的测试选择驱动程序,您可以尝试如下:

代码语言:javascript
复制
public class SetupBrowser {

public static WebDriver SetupDriver(String browser) {
    WebDriver driver = null;
    if (browser.equalsIgnoreCase("FF")) {

            System.setProperty("webdriver.gecko.driver","C:\\geckodriver-v0.16.1-win64\\geckodriver.exe");
            DesiredCapabilities capabilitiesFF = DesiredCapabilities.firefox();
            capabilitiesFF.setCapability(FirefoxDriver.MARIONETTE, true);
            //capabilitiesFF.setCapability(FirefoxDriver.PROFILE, true);
            driver = new FirefoxDriver(capabilitiesFF);

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

        System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");

        // Setting IE to clean session
        DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
        capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);

        driver = new InternetExplorerDriver(capabilities);

    }
    else {
           driver = new ChromeDriver();
           //////////
               }
    return driver;
}

我们从属性文件中读取浏览器类型。

每当需要打开浏览器时,调用/编写代码:

代码语言:javascript
复制
SetupBrowser.SetupDriver("FF");
票数 0
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/27472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档