codeomnitrix
codeomnitrix

Reputation: 4249

cookies validation using selenium

I am new to selenium. Actually I am working on some cookie validation project, which requires me to manually check the cookies present before and after clicking on some consent link in multiple browsers (Firefox, ie, chrome, safari).

Previously in the phase 1 project I ran a qtp script to treat the firefox as a window object and capture screenshots, but that is quite troublesome if the resolution changes or any minor look-n-feel changes. Also it is quite difficult to manage and it works on firefox only and I needed to write the same script again for chrome and safari. Apart from this since QTP is licensed product and currently we are using seat license so I can't run it on multiple machines to speed up execution.

So I thought moving to Selenium. As of now my requirement is:

1. open the page - take the screenshot once page loaded.
2. check the cookies using firebug or any other way  - take the screenshot
3. click the link to close the consent - take screenshot once consent closed.
4. refresh the page and again check the cookies using firebug - take screenshot

So I done some research on selenium and found that I can validate the cookies using verifyCookie but still I need screenshot of firebug window for cookies. So I got stuck here.

please help me out here..

I found some possible way to do this on Firefox but now I was looking forward for something similar for Chrome if that possible. Thanks

Upvotes: 0

Views: 4871

Answers (3)

codeomnitrix
codeomnitrix

Reputation: 4249

Got some solution

public class Selenium1st {

    /**
     * @param args
     */
    public static void main(String[] args) throws IOException, AWTException{
        // TODO Auto-generated method stub      
        System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\Firefox.exe");
        FirefoxProfile firefoxProfile = new FirefoxProfile();

        String domain = "extensions.firebug.";
        firefoxProfile.setPreference("app.update.enabled", false);
        firefoxProfile.addExtension(new File("E:\\softs\\selenium-2.29.0\\firebug\\firebug-1.11.2-fx.xpi"));
        firefoxProfile.setPreference(domain + "currentVersion", "1.11.2");
        firefoxProfile.setPreference("extensions.firebug.cookies.enableSites", true);
        firefoxProfile.setPreference("extensions.firebug.allPagesActivation", "on");

        firefoxProfile.setPreference(domain + "framePosition", "bottom");
        firefoxProfile.setPreference(domain + "defaultPanelName", "cookies");

        WebDriver driver = new FirefoxDriver(firefoxProfile);
        driver.get("http://www.google.com/webhp?complete=1&hl=en");
        WebElement query = driver.findElement(By.name("q"));
        query.sendKeys("Cheese");
        query.sendKeys("\n");
        Robot robot = new Robot();
        BufferedImage img = robot.createScreenCapture(new Rectangle(new Dimension(1024, 768)));

        File path = new File("E:\\abc");//Path to your file
        if(path.getName().indexOf(".jpg") == -1){
            path = new File(path.getPath() + ".jpg");
        }       
        ImageIO.write(img, "jpg", path);                
    }

}

might be useful.

Upvotes: 0

Ankit jain
Ankit jain

Reputation: 4328

In selenium IDE if you want to take screenshot of the page use captureEntirePageScreenshot command

   captureEntirePageScreenshot | D:\\test.png | 

     D:\\test.png - path of file where you want to save the file

Upvotes: 0

Ardesco
Ardesco

Reputation: 7466

Selenium cannot interact with firefox extensions, or the browser in the way you want it to.

What you can do is collect a list of cookies on the page by doing:

driver.manage().getCookies()

This will give you a list of all cookies that are visible to Selenium. Please note that this is the same as the cookies that are visible in the JavaScript console (Not all cookies are visible via JavaScript, for example cookies set with the HTTPOnly attribute) using:

document.cookie

I would suggest you use getCookies() to programatically validate the cookies.

Upvotes: 1

Related Questions