【Web自动化测试——代码篇九】常用方法——Cookie的操作 Java Python Ruby

  Java Python Ruby
获取所有的Cookie driver.manage().getCookies() driver.get_cookies() driver.manage.all_cookies
获取指定cookies的信息 driver.manage().getCookieNamed(name) driver.get_cookie(name) driver.manage.cookie_named(name)
添加cookie driver.manage().addCookie(cookie_dict) driver.add_cookie(cookie_dict) driver.manage.add_cookie(cookie)
删除指定cookie信息 driver.manage().deleteCookieNamed(name) driver.delete_cookie(name,optionsString) driver.manage.delete_cookie(name)
删除所有cookie信息 driver.manage().deleteAllCookies() driver.delete_all_cookies() driver.manage.delete_all_cookies

**代码时间 **

package JavaTest;

import java.io.IOException;
import java.util.NoSuchElementException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Test {
    public static void main(String[] arg) throws InterruptedException, IOException
    {
        WebDriver driver = new FirefoxDriver();

         // 设置隐示等待时长:10秒;
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get("http://www.baidu.com");    
        
        try {
            driver.manage().deleteCookieNamed("BAIDUID"); //删除指定cookie信息
            driver.manage().addCookie(new Cookie("BAIDUID","123")); //添加cookie
            System.out.println(driver.manage().getCookieNamed("BAIDUID")); //获取指定cookies的信息
            System.out.println(driver.manage().getCookies()); //获取所有的Cookie
        }
        catch(NoSuchElementException e)
        {
            System.out.println(e.getMessage());
        }
        finally
        {
            driver.close();
        }    
    }
}

Python

from selenium import webdriver

driver = webdriver.Firefox()

# 隐式等待10S,打开网址(可直接通过frame的id和name定位)
driver.implicitly_wait(10)
driver.get("http://www.baidu.com/")

try:
   cookie = driver.get_cookie(name = 'BAIDUID') # 获取指定cookies的信息
   driver.delete_cookie(name = 'BAIDUID') # 删除指定cookie信息
   driver.delete_all_cookies() # 删除所有cookie信息
   cookies = driver.get_cookies()  # 获取所有的Cookie
   print(cookie)
   print(cookies)
except Exception as e:
    print(e.args[0])
finally:
    driver.close()

Ruby

class Baidu
  require 'rubygems'
  require 'selenium-webdriver'

  # 打开firefox并输入网址
  driver = Selenium::WebDriver.for :firefox

  # 设置隐式等待时间10S
  driver.manage.timeouts.implicit_wait = 10
  driver.navigate.to "http://www.baidu.com"

  begin
    driver.manage.delete_cookie('BAIDUID') # 删除指定cookie信息
    driver.manage.add_cookie(:name => 'BAIDUID' , :value => '123') # 添加cookie
    cookie = driver.manage.cookie_named('BAIDUID') # 获取指定cookies的信息
    puts cookie
    cookies = driver.manage.all_cookies # 获取所有的Cookie
    puts cookies
  rescue => e
    puts e.message # 显示报错信息
  ensure
    driver.close
  end
end