selenium常用API

一.文件上传

1.定位下载文件的按钮元素

2.使用send_keys(r'文件路径')来上传文件

二.cookie

在网页上怎么查看cookies?

1.打开F12------点击application

2.在左侧选择点击cookies

具体操作代码如下:

# 导包
from selenium import webdriver
import time

# 实例化一个浏览器对象
diver = webdriver.Chrome()

# 打开百度的网页
diver.get('https://www.baidu.com')

# 获取所有的cookies
print(diver.get_cookies())

# 获取其中一条
print(diver.get_cookie('ZFY'))

# 添加cookie
cookie_dict = {"name": "张三", "value": "20"}
diver.add_cookie(cookie_dict)
print(diver.get_cookies())

# 删除其中一个cookie
diver.delete_cookie('张三')
print(diver.get_cookies())

# 删除所有的cookie
diver.delete_all_cookies()
print(diver.get_cookies())

三.验证码

验证码处理:

1.在测试环境下去掉验证码----需要开发配合

2.设置万能码----程序后门

3.图片验证码识别技术python---tesseract-----不建议这种方式,因为不稳定

4.cookie伪装

四.元素等待

强制等待:time.sleep(秒数) 无论元素是否加载完毕,都要等这么久

隐式等待:driver.implicitly_wait(10)  # 等待页面元素加载完毕,最多等10秒,如果页面所有元素在3秒内加载完毕,那么就只等待3秒

隐式等待--缺点:

1.需要等待整个页面加载完毕之后才会往下执行,但是存在页面还未加载完毕,想要操作的元素已经加载完毕,因此会浪费等待时间

2.最多超过等待时间之后,页面未加载完毕,接着往下执行,可能存在元素找不到的问题

优点:针对driver的整个周期有效,只需要设置一次

五.显示等待

# 导包

from selenium.webdrivr.support.wait umport WebDriver Wait

语法:

webDriverWait(driver,超时时间,检测频率,忽略异常)

# 查找某个元素,一直查找10秒,每隔0.5秒检测一次,存在返回元素,不eb存在抛出TimeoutException的异常,其中unti方法的message参数是可以抛出异常信息的参数

element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("someId"),message="报错信息")

# 实现逻辑分析:

1.webDriverWait(driver,10) 实例化一个显示等待类

2.调用until方法,把匿名函数传给method参数

3.method参数使用method(self._driver)来达到查找元素的功能

六.__call__方法:

执行时机:当直接执行对象的时候,如:对象() 就会直接调用__call__方法

作用:把对象当做一个函数来进行调用

七.Ec模块-----expected_conditions

# 使用的时候用as取别名未EC

1.导包

from selenium.webddriver.support import expected_coditions as EC

概念:EC模块实际上就是selenium官方封装的用来断言的方法

断言:判断 预期结果 和 实际结果是否相符合

EC.title_is('百度一下,你就知道')(driver)

EC.title_contains('百度一下')(driver)

# 判断预期和实际,返回布尔值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值