0
votes

I am using selenium java webdriver version 2.53.0, ChromeDriver 2.22.397933, chrome browser Version 51.0.2704.103.

I have created a maven project for our ACS automation code written in java. I am able to run my java script using eclipse but I am unable to run using Jenkins tool. Earlier I was able to run same script using both (Eclipse IDE and Jenkins) but suddenly, don't know why jenkins is giving the following error.

Can anyone please help me to sort out this problem ?

1st log:

Running TestSuite Starting ChromeDriver 2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b) on port 13433 Only local connections are allowed. Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 64.775 sec <<< FAILURE! - in TestSuite lastConnectionStatus(AcsAutomation.Sanity_TestCase_LastConnectionStatus) Time elapsed: 64.093 sec <<< FAILURE! org.openqa.selenium.WebDriverException: chrome not reachable (Driver info: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 62.44 seconds Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46' System info: host: 'DT0029711', ip: '10.49.64.91', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_79' Driver info: org.openqa.selenium.chrome.ChromeDriver

2nd Log:

Starting ChromeDriver 2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b) on port 41567 Only local connections are allowed. Starting ChromeDriver 2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b) on port 36032 Only local connections are allowed. Starting ChromeDriver 2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b) on port 28867 Only local connections are allowed. Starting ChromeDriver 2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b) on port 4502 Only local connections are allowed. Tests run: 9, Failures: 8, Errors: 0, Skipped: 0, Time elapsed: 318.1 sec <<< FAILURE! - in TestSuite deviceReboot(AcsAutomation.Sanity_TestCase_DeviceReboot) Time elapsed: 63.74 sec <<< FAILURE! org.openqa.selenium.WebDriverException: unknown error: unable to discover open pages (Driver info: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 62.39 seconds Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46' System info: host: 'DT0029711', ip: '10.49.64.91', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_79' Driver info: org.openqa.selenium.chrome.ChromeDriver

Code :

public class Sanity_TestCase_LastConnectionStatus {

    public static WebDriver driver;
    DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");


    @Test
    public void lastConnectionStatus() throws ParseException, InterruptedException,java.text.ParseException, IOException {

        System.setProperty("webdriver.chrome.driver", "D:\\BrowserDriver\\chromedriver.exe");
        driver = new ChromeDriver();

        DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
        DateFormat LogDateFormat = new SimpleDateFormat("dd-MM-yyyy-hh-mm-ss");
        String Timestamp = LogDateFormat.format(new Date());
        //System.out.println("current timestamp is "+Timestamp);

        String expectedTitle = "Friendly TR69 Suite Management Console : Update a CPE - List";
        String actualTitle = "";
        String actualDeviceSerialNo = "";
        String registrationDate = "";
        String lastConnection = "";

        //Create FileInputStream Object
        File file = new File("C:\\Users\\Nakul.Dhenge\\workspace\\AcsAutomation\\src\\test\\java\\AcsAutomation\\datafile.properties");
        FileInputStream fileInput = null;
        fileInput = new FileInputStream(file);
        //Creates Properties object
        Properties prop = new Properties();
        //load properties file
        prop.load(fileInput);

        System.out.println("\n ****** Test Case Name : Sanity_TestCase_LastConnectionStatus : Checking Last Connection Status of Device with ACS ******\n");
        String baseUrl = prop.getProperty("BASE_URL");
        String expectedDeviceSerialNo = prop.getProperty("SERIAL_NUMBER_1");

        //Maximize the browser window
        driver.manage().window().maximize();
        //launch browser and direct it to the Base URL
        driver.get(baseUrl);
        // Enter User name
        driver.findElement(By.id("txtName")).sendKeys(prop.getProperty("USERNAME")); //FIXME --configurable parameter
        // Enter Password
        driver.findElement(By.id("txtPassword")).sendKeys(prop.getProperty("PASSWORD")); //FIXME --configurable parameter
        // click on Login Button
        System.out.println("Wait for 4 sec to press login button");
        Thread.sleep(4000);
        driver.findElement(By.xpath("//*[@id='btnLogin_btn']")).click();
        // Wait for Page to Load
        System.out.println("wait for 10 sec to load webpage!");
        Thread.sleep(10000);
        // Get the actual value of the title
        actualTitle = driver.getTitle();
        System.out.println("Actaul Title is:" +actualTitle);
        /*
         * compare the actual title of the page with the expected one and print
         * the result as "Passed" or "Failed"
         */
        if (actualTitle.contentEquals(expectedTitle)){
            System.out.println("Expected Title found from Webpage, means web page loads properly");
        } else {
            System.out.println("Title Not Found From Webpage, means webpage not loaded properly but script can run properly"); // This check is not for failing Test case
        }

        System.out.println("wait for 5 sec to click sub-menu");
        Thread.sleep(5000);
        // click on "Search" option from sub-menu
        driver.findElement(By.xpath("//*[@id='SubMenusList']/table/tbody/tr[4]/td")).click();
        System.out.println("wait for 5 sec. to move driver on another web frame");
        Thread.sleep(5000);
        // SWITCH TO FRAME 
        driver.switchTo().frame("frmDesktop");
        // By default "Search match only" checkbox is in checked state, so by clicking it will become unchecked.
        driver.findElement(By.name("rdSearchExactly")).click();
        System.out.println("Wait for 5 sec to load webpage with proper input box to enter Sr.No.!");
        Thread.sleep(5000);
        // Search by is always Default and first Option "Device Serial Number" so search device using Serial No.
        driver.findElement(By.id("tbDeviceID")).sendKeys(prop.getProperty("SERIAL_NUMBER_1")); //FIXME configurable parameter
        driver.findElement(By.id("tbDeviceID")).click();
        driver.findElement(By.id("btnSearch_btn")).click();
        // wait to load device
        System.out.println("wait for 5 sec to load webpage!");
        Thread.sleep(5000);

        actualDeviceSerialNo = driver.findElement(By.xpath(".//*[@id='tblGrid']/tbody/tr/td[2]/table/tbody/tr[8]/td[2]")).getText();
        System.out.println("Serial Number " + actualDeviceSerialNo);
        // Check found device is correct or incorrect and that way passed or fail the Test case
        if (actualDeviceSerialNo.contentEquals(expectedDeviceSerialNo)){
            System.out.println("Actual and Expected Serial No. matched Properly");
        } 
        else 
        {
            System.out.println("There is a mismatch in Serial No.");
            System.out.println("Something went wrong, Please check the configuration file...");
        }

        // It's a neccessory to switch driver from selected frame to default content.
        driver.switchTo().defaultContent();

        /*** Step 3: Check last connection status ***/
        //--------------------------------------------/

        driver.switchTo().frame("frmDesktop");
        registrationDate = driver.findElement(By.xpath(".//*[@id='tblGrid']/tbody/tr/td[2]/table/tbody/tr[9]/td[2]")).getText();
        System.out.println("Registration Date is\t:=> "+registrationDate);

        //Thread.sleep(1000);
        lastConnection = driver.findElement(By.xpath(".//*[@id='tblGrid']/tbody/tr/td[2]/table/tbody/tr[10]/td[2]")).getText();
        System.out.println("Last Connection Status\t:=> "+lastConnection);

        SimpleDateFormat dateFormat1 = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
        Date Date1=dateFormat1.parse(lastConnection);
        dateFormat1=new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
        String Final_lastConnection = dateFormat1.format(Date1);
        System.out.println("Last Connection Status\t:=>"+Final_lastConnection);


        Date date = new Date();
        String currentDate = dateFormat.format(date);
        System.out.println("Current Date and Time is:=>"+currentDate);


        /* Logic To take out time difference between two DateTime *****/

        SimpleDateFormat dateFormat2 = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");

        Date D1=null;
        Date D2=null;
        try {
            D1 = dateFormat2.parse(Final_lastConnection);
            D2 = dateFormat2.parse(currentDate);

            //in milliseconds
            long diff = D2.getTime() - D1.getTime();
            System.out.println("Time Difference:"+diff);

            long diffSeconds = diff / 1000 % 60;
            long diffMinutes = diff / (60 * 1000) % 60;
            long diffHours = diff / (60 * 60 * 1000) % 24;
            long diffDays = diff / (24 * 60 * 60 * 1000);

            System.out.println(diffDays + " days, ");
            System.out.println(diffHours + " hours, ");
            System.out.println(diffMinutes + " minutes, ");
            System.out.println(diffSeconds + " seconds.");
            if(diffMinutes<10)
            {
                System.out.println("Device Connection State is Latest One");
            }
            else
            {
                System.out.println("Need to run Test case again, may be 'get current' task is pending \n Device is not connected since long time");

            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        driver.switchTo().defaultContent();

        System.out.println("\n ==== Sanity_TestCase_LastConnectionStatus: Test Case Executed Successfully ==== \n");
    }


    /**** Either Test Fail or Pass but Browser will close because of below method ****/

    @AfterMethod
    public void tearDown()
    {
        driver.close();
    }


}
1
What have you tried and what was the result? Please read the help topics on how to ask a good question. You need to research your own issue, find code samples, etc. and write your own code to solve the issue. If you do all that and still can't figure it out, then come back and edit your question and add notes from the research you did, the code you have tried, and what the result was... any error messages, etc. Especially read the part about MCVEs. You need to spend some time narrowing down the problem on your own.JeffC
Hi JeffC, thanks for your valuable advice but questions is very simple. Please answer the question if you are able to answer, even I don't like to waste my time on stackovrflow or google. so again thanks for at least checking the question.Nakul
So you can't be bothered to research your own question but you feel like our time is free to waste. If the question is so simple, why haven't you answered it?JeffC
If i knew the answer then why I would ask here. If I will get the answer I will definitely put my comments. Cheers :-Nakul

1 Answers

0
votes

You are getting exception - unable to discover open pages. You need to update your chromedriver. have a look here.