在学习selenium的同时我编写了3个类,现在有2个firefox实例正在启动..看看问题是什么

时间:2016-12-11 13:30:43

标签: java selenium firefox

在运行下面的脚本时,正在启动Firefox的实例。

Guru99projectdemo.java
package com.edureka;
public class Guru99projectdemo 
{

 public static void main (String[] args)
 {
     opengurusite obj2 = new opengurusite();
     obj2.opensite();
     login obj1 = new login();
     obj1.login1();

 }}

调用的两种方法如下所示:

public class opengurusite 
{
WebDriver driver = new FirefoxDriver();

 public void opensite() 
 {
     driver.manage().deleteAllCookies();
     driver.get("http://demo.guru99.com/V4/");               
 }}

登录方法:

login.java

public class login {


public void login1 () 
{
    WebDriver driver = new FirefoxDriver();
    driver.findElement(By.name("uid")).sendKeys("mngr56562");   
    driver.findElement(By.name("password")).sendKeys("qAtugAb");
    driver.findElement(By.name("btnLogin")).click();    

}

}

请告知如何解决此问题。

1 个答案:

答案 0 :(得分:1)

启动了2个实例,因为您在不调用driver.quit()的情况下调用了WebDriver实例;

WebDriver driver = new FirefoxDriver();

第一次使用在opengurusite级,第二次使用public void login1方法。

要在一个浏览器上操作,您必须在类和方法之间传递参数driver

例如:

public class Guru99projectdemo {

 public static void main (String[] args)
 {
     WebDriver driver = new FirefoxDriver();
     opengurusite obj2 = new opengurusite();
     obj2.opensite(driver);
     login obj1 = new login();
     obj1.login1(driver);
     driver.quit();
 }
}

public class opengurusite {

 public void opensite(WebDriver driver) 
 {
     driver.manage().deleteAllCookies();
     driver.get("http://demo.guru99.com/V4/");               
 }
}

public class login {

public void login1(WebDriver driver) 
{
    driver.findElement(By.name("uid")).sendKeys("mngr56562");   
    driver.findElement(By.name("password")).sendKeys("qAtugAb");
    driver.findElement(By.name("btnLogin")).click();    
}
}

但正如所建议的那样 - 你真的应该编辑你的问题,因为它不易阅读。阅读一些有关JUnit的信息,以便正确地驾驶您的测试http://junit.org/junit4/