Java 运行跨浏览器测试时面临的问题
我在运行跨浏览器时遇到问题 问题是它正在打开浏览器,但没有导航到我提供的URL并启动测试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
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/");
//...........
}
试试看,如果不起作用就告诉我。你能查看错误吗?是的!我已经在上面粘贴了我的错误,请查看。