Selenium基础:cookie javascript调用 屏幕截图 09

1、cookie操作  绕过登录

  • get_cookies():以字典形式返回cookie所有信息
  • get_cookies(name):返回cookie字典中key为name的值
  • add_cookie(cookie_dict):手动添加cookie。cookie_dict为字典数据格式,cookie_dict中必须有name和value值
  • delete_cookie(name):删除cookie字典中key为name的值
  • delete_all_cookies():删除所有cookie信息
复制代码
#示例:访问百度,手动登录后获取cookie信息

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("")

#清除所有的cookie
driver.delete_all_cookies()
#登录通过手动操作完成
time.sleep(30)

#获取cookie
cookie = driver.get_cookies()
print(cookie)
复制代码

cookie字段解释:

  • domain:可以访问此cookie的域名
  • expiry:cookie有效终止时间
  • httpOnly:防脚本攻击
  • name:cookie名称
  • path:可以访问此cookie的页面路径
  • secure:只有当浏览器和服务器通信协议加密即https,浏览器才向服务器提交相应cookie
  • value:cookie值,动态生成的

2、Javascript调用    execute_script()

#示例:定位id=‘id’

#javascript语法为document.getElementById('id')

#利用webdriver操作javascript脚本进行定位
driver. execute_script("document.getElementById('id')")

3、屏幕截图

一般用于程序运行失败时自动截取当前页面,保持记录,方便查看失败原因

4种方式:

  • save_screenshot():获取当前窗口屏幕截图,以png文件格式存储
  • get_screenshot_as_base64():以base64编码字符串的形式获取当前窗口的屏幕截图
  • get_screenshot_as_file():获取当前屏幕截图,使用完整的路径。如果有任何IO error,返回false,否则返回true
  • get_screenshot_as_png():以二进制数据形式获取当前屏幕截图
复制代码
#示例:访问一个页面,定位一个不存在的元素。当定位元素不存在时进行截图保存

#-*-coding:utf-8-*-
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException

driver = webdriver.Chrome()
driver.get("")
driver.implicitly_wait(10)

try:
     driver.find_element_by_id('id')
except NoSuchElementException:
        #定位元素不存在时截图
      driver.save_screenshot('img/testFail/screenshot.png')

driver.quit()
复制代码

 

posted @   1啊1  阅读(41)  评论(0)    收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示