Day5 selenium高级和实战
文章目录
1. selenium使用代理
'''
Author:KathAmy
Date:2022/8/17 9:49
键盘敲烂,共同进步!
'''
from selenium.webdriver import Chrome, ChromeOptions
# selenium模仿人的行为,所有不容易被封IP,但咱还是得学
# 1.创建配置对象
options = ChromeOptions()
# 2.添加配置
options.add_argument('--proxy-server=http://')
# 通过指定配置创建浏览器对象
b = Chrome(options=options)
b.get('https://movie.douban.com/top250')
2. selenium基本配置
'''
Author:KathAmy
Date:2022/8/17 9:59
键盘敲烂,共同进步!
'''
from selenium.webdriver import Chrome,ChromeOptions
options = ChromeOptions()
# 1.设置取消测试环境
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 2.设置取消图片加载
options.add_experimental_option("prefs", {
"profile.managed_default_content_settings.images": 2})
3. selenium等待
3.1 隐式等待
1)如果没有设置隐式等待:在通过浏览器取标签的时候,如果标签不存在会直接报错
2) 如果设置了隐式等待:在通过浏览器获取标签的时候,如果标签不存在会直接报错,不会马上报错,
而是在指定时间范围内不断尝试重新获取标签,直到获取到标签或超时为止(超时会报错)
注:一个浏览器只需要设置一次等待时间,它会作用于这个浏览器每次获取标签的时候
引入模块
from selenium.webdriver import Chrome, ChromeOptions
options = ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option("prefs", {
"profile.managed_default_content_settings.images": 2})
b = Chrome(options=options)
b.get('https://www.jd.com')
# 1)设置隐式等待时间
b.implicitly_wait(5)
# 2)获取标签的时候隐式等待时间才会生效
input_tag = b.find_element_by_id('key'