Java 运行跨浏览器测试时面临的问题

Java 运行跨浏览器测试时面临的问题,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我在运行跨浏览器时遇到问题 问题是它正在打开浏览器,但没有导航到我提供的URL并启动测试 i Have Created Totally 3 Packages , 1. Browser Configuration (package) - BrowserSetup.java (File) 2.TestCase (Package) - FinalTest.java(file) 3 Test Methods(Package) - List of All Methods for each Single

我在运行跨浏览器时遇到问题

问题是它正在打开浏览器,但没有导航到我提供的URL并启动测试

i Have Created Totally 3 Packages ,

1. Browser Configuration (package) - BrowserSetup.java (File)
2.TestCase (Package) - FinalTest.java(file)
3 Test Methods(Package) - List of All Methods for each Single Page(Files)
我的问题是,如果我没有在调用浏览器的
finaltest.java
中导入
Browsersetup.java
,它将成功运行并通过测试。但是,当我在
finalTest.java
中导入
BrowserSetup.java
时,它无法正常工作,我已附加了两个代码文件

BrowserSetup.java

package Browserconfiguration;

import java.io.File;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class Browsersetup 
{
    WebDriver driver;

    public WebDriver setup(String browser) throws Exception
    {
        //Check if parameter passed from TestNG is 'firefox'

        if(browser.equalsIgnoreCase("firefox"))
        {
        //create firefox instance

            System.setProperty("webdriver.gecko.driver", "F:\\New folder\\geckodriver.exe");

            driver = new FirefoxDriver();
        }
        //Check if parameter passed as 'chrome'

        else if(browser.equalsIgnoreCase("chrome"))
        {
                    //set path to chromedriver.exe

        ChromeOptions options = new ChromeOptions();
        options.setAcceptInsecureCerts(true);
        options.setBinary(new File("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"));
        options.addArguments("start-maximized");
        options.addArguments("disable-infobars");
        options.addArguments("--disable-extensions");
        System.setProperty("webdriver.chrome.driver", "F:\\New folder\\chromedriver.exe");

        //create chrome instance

        driver = new ChromeDriver(options);
        }

        //Check if parameter passed as 'Edge'

                else if(browser.equalsIgnoreCase("Edge"))
                {
                    //set path to IE.exe

                    System.setProperty("webdriver.edge.driver","F:\\New folder (2)\\MicrosoftWebDriver (1).exe");
                    //create Edge instance

                    driver = new EdgeDriver();

                }
        else
        {
            //If no browser passed throw exception

            throw new Exception("Browser is not correct");
        }

        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        return driver;
    }


}
public class FinalTest {

    WebDriver driver;

    @BeforeTest
    public void beforeTest() throws Exception
    {
        Browsersetup obj = new Browsersetup();
        obj.setup("chrome");

        driver.get("http://xxx.xxxxxxxxxxxx.xxx/");


         List<WebElement> links=driver.findElements(By.tagName("a"));

            System.out.println("Total links are "+links.size());

            for(int i=0;i<links.size();i++)
            {

                WebElement ele= links.get(i);

                String url=ele.getAttribute("href");

                verifyLinkActive(url);


            }



        }

//Finding the broken Links in the website.


private void verifyLinkActive(String linkUrl) {

    try 
    {
       URL url = new URL(linkUrl);

       HttpURLConnection httpURLConnect=(HttpURLConnection)url.openConnection();

       httpURLConnect.setConnectTimeout(3000);

       httpURLConnect.connect();

       if(httpURLConnect.getResponseCode()==200)
       {
           System.out.println(linkUrl+" - "+httpURLConnect.getResponseMessage());
        }
      if(httpURLConnect.getResponseCode()==HttpURLConnection.HTTP_NOT_FOUND)  
       {
           System.out.println(linkUrl+" - "+httpURLConnect.getResponseMessage() + " - "+ HttpURLConnection.HTTP_NOT_FOUND);
        }
    } catch (Exception e) {

    }
}

}
FinalTest.java

package Browserconfiguration;

import java.io.File;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class Browsersetup 
{
    WebDriver driver;

    public WebDriver setup(String browser) throws Exception
    {
        //Check if parameter passed from TestNG is 'firefox'

        if(browser.equalsIgnoreCase("firefox"))
        {
        //create firefox instance

            System.setProperty("webdriver.gecko.driver", "F:\\New folder\\geckodriver.exe");

            driver = new FirefoxDriver();
        }
        //Check if parameter passed as 'chrome'

        else if(browser.equalsIgnoreCase("chrome"))
        {
                    //set path to chromedriver.exe

        ChromeOptions options = new ChromeOptions();
        options.setAcceptInsecureCerts(true);
        options.setBinary(new File("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"));
        options.addArguments("start-maximized");
        options.addArguments("disable-infobars");
        options.addArguments("--disable-extensions");
        System.setProperty("webdriver.chrome.driver", "F:\\New folder\\chromedriver.exe");

        //create chrome instance

        driver = new ChromeDriver(options);
        }

        //Check if parameter passed as 'Edge'

                else if(browser.equalsIgnoreCase("Edge"))
                {
                    //set path to IE.exe

                    System.setProperty("webdriver.edge.driver","F:\\New folder (2)\\MicrosoftWebDriver (1).exe");
                    //create Edge instance

                    driver = new EdgeDriver();

                }
        else
        {
            //If no browser passed throw exception

            throw new Exception("Browser is not correct");
        }

        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        return driver;
    }


}
public class FinalTest {

    WebDriver driver;

    @BeforeTest
    public void beforeTest() throws Exception
    {
        Browsersetup obj = new Browsersetup();
        obj.setup("chrome");

        driver.get("http://xxx.xxxxxxxxxxxx.xxx/");


         List<WebElement> links=driver.findElements(By.tagName("a"));

            System.out.println("Total links are "+links.size());

            for(int i=0;i<links.size();i++)
            {

                WebElement ele= links.get(i);

                String url=ele.getAttribute("href");

                verifyLinkActive(url);


            }



        }

//Finding the broken Links in the website.


private void verifyLinkActive(String linkUrl) {

    try 
    {
       URL url = new URL(linkUrl);

       HttpURLConnection httpURLConnect=(HttpURLConnection)url.openConnection();

       httpURLConnect.setConnectTimeout(3000);

       httpURLConnect.connect();

       if(httpURLConnect.getResponseCode()==200)
       {
           System.out.println(linkUrl+" - "+httpURLConnect.getResponseMessage());
        }
      if(httpURLConnect.getResponseCode()==HttpURLConnection.HTTP_NOT_FOUND)  
       {
           System.out.println(linkUrl+" - "+httpURLConnect.getResponseMessage() + " - "+ HttpURLConnection.HTTP_NOT_FOUND);
        }
    } catch (Exception e) {

    }
}

}

实际上,在FinalTestClass中,您正在使用另一个Webdriver,请尝试执行以下操作:

Use the driver which is returning from obj.setup("chrome");



public class FinalTest {

WebDriver driver;

@BeforeTest
public void beforeTest() throws Exception
{
    Browsersetup obj = new Browsersetup();
    driver = obj.setup("chrome");

    driver.get("http://xxx.xxxxxxxxxxxx.xxx/");
//...........
}

试试看,如果不起作用就告诉我。

你能查看错误吗?是的!我已经在上面粘贴了我的错误,请查看。