当前位置:网站首页>ChromeOptions常用配置与WebUI实操
ChromeOptions常用配置与WebUI实操
2022-07-20 02:59:00 【司小幽】
目录
1.创建Chrome浏览器配置项
''' Chrome浏览器的配置项 '''
from time import sleep
from selenium import webdriver
def options():
options = webdriver.ChromeOptions()
1.添加试验性质的配置项
# options.add_experimental_option()
## 添加常规设定
# options.add_argument()
2.页面加载策略
# options.page_load_strategy = 'eager'
3.浏览器最大化
options.add_argument('start-maximized')
4.指定位置启动浏览器
# options.add_argument('window-position=500,500')
5.设置窗体的启动大小
# options.add_argument('window-size=1200,800')
6.去掉浏览器提示自动化黄条
# :没什么用处,只是为了好看而已(附加去掉控制台多余日志信息)
options.add_experimental_option('excludeSwitches',['enable-automation','enable-logging'])
# 只支持2.7版本的selenium,目前已经被停用了
# options.add_experimental_option('disable-infobars')
7.无头模式
# 不在桌面实现浏览器的运行,作为后台静默运行,虽然看不到,但是一切照旧。偶尔场景会有异常,但很少。
# options.add_argument('--headless')
8.读取本地缓存
# webdriver启动的时候默认是不会加载本地缓存数据的。有时候想要绕过验证码或者登录流程,可以通过加载本地缓存来实现
# options.add_argument(r'--user-data-dir=C:\Users\user\AppData\Local\Google\Chrome\User Data')
9.去掉账号密码弹出框
prefs = dict()
prefs['credentials_enable_service'] = False
prefs['profile.password_manager_enable'] = False
options.add_experimental_option("prefs", prefs)
10.隐身模式无法调用selenium中的switch_to.new_window()函数
# options.add_argument('incognito')
11.去掉控制台多余信息
# options.add_experimental_option('excludeSwitches',['enable-logging'])
12.去掉控制台多余信息手段二
# 可以作为保险的存在。(当你发现还有多余信息的时候)
options.add_argument('--log_level=3')
options.add_argument('--disable-gpu')
options.add_argument('--ignore-certificate-errors')
13.return这一步很重要
# 因为需要有options对象进行返回才可以对webdriver生效
return options
14.执行,调用options
# 表示支持python3及以上版本的浏览器配置
from time import sleep
from selenium import webdriver
from class23 import chrome_options
if __name__ == '__main__':
driver = webdriver.Chrome(options = chrome_options.options() )
# driver.get('http://www.iqiyi.com')
driver.get('http://www.baidu.com')
# driver.get('https://weibo.com/')
sleep(3)
# driver.get('http://39.98.138.157/shopxo/')
print(driver.title)
# driver.find_element('id','kw').send_keys('秋水无头')
# driver.find_element('id','su').click()
# sleep(3)
# print(driver.title)
# driver.quit()
# 6.表示python2.7版本的浏览器配置,不要使用
# driver = webdriver.Chrome(chrome_options = )
2.商品添加购物车作业
''' 实现登录,搜索商品,将商品添加购物车,并进行断言 在实现整个自动化流程的时候,可以去思考如何简化你的操作步骤,注意,核心的业务流程不应该省略就不省略。 在测试执行的时候,流程的每一个步骤是你们已经知道了的。 '''
from time import sleep
from selenium import webdriver
# 创建driver对象
from selenium.webdriver.support.wait import WebDriverWait
from class23 import chrome_options
driver = webdriver.Chrome(options=chrome_options.options())
# 窗体最大化
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(5)
# 访问url
# driver.get('http://39.98.138.157/shopxo/index.php')
# 登录页跳转
# driver.find_element('link text','登录').click()
# 直接访问登录url
driver.get('http://39.98.138.157/shopxo/index.php?s=/index/user/logininfo.html')
# 输入账号密码,进行登录
driver.find_element('name','accounts').send_keys('sixiaoyou')
driver.find_element('name','pwd').send_keys('xxx')
driver.find_element('xpath','//button[text()="登录"]').click()
# 基于显示等待,做一个简单的校验
WebDriverWait(driver,10,0.5).until(lambda el:driver.find_element('link text','退出'),message='元素获取失败')
print('登录成功')
# 简化操作步骤
# driver.switch_to.new_window('tab')
driver.get('http://39.98.138.157/shopxo/index.php?s=/index/goods/index/id/2.html')
# 商品搜索
# 手机搜索
# driver.find_element('id','search-input').send_keys('手机')
# driver.find_element('id','ai-topsearch').click()
# 进入指定商品详情页
# driver.find_element('partial link text','iPhone').click()
# print(driver.find_element('xpath','//a[@href="http://39.98.138.157/shopxo/index.php?s=/index/goods/index/id/2.html"]').text)
# 切换句柄
# handles = driver.window_handles
# driver.close()
# driver.switch_to.window(handles[1])
# 校验页面是否切换成功
# WebDriverWait(driver,10,0.5).until(lambda el:driver.find_element('xpath','//h1[contains(text(),"iPhone")]'),message='元素获取失败')
# 添加商品属性
driver.find_element('xpath','//li[@data-value="套餐一"]').click()
sleep(1)
driver.find_element('xpath','//li[@data-value="金色"]').click()
sleep(1)
driver.find_element('xpath','//li[@data-value="32G"]').click()
el = driver.find_element('id','text_box')
el.clear()
el.send_keys(20)
# 加入购物车
driver.find_element('xpath','//button[@title="加入购物车"]').click()
# 获取加入成功文本进行断言
text = WebDriverWait(driver,10,0.5).until(lambda el:driver.find_element('xpath','//p[text()="加入成功"]'),message='元素获取失败').text
assert '加入成功' == text,'预期结果与{}不一致'.format(text)
# 资源释放,关闭浏览器
driver.quit()
边栏推荐
- NETFLOW 与 SNMP两种不同的网络监控方法
- 美国议员倡导打击加密挖矿 敲响加密警钟?减少碳足迹才能发挥真正价值
- 技术干货 | 解决面试中80%问题,基于MindSpore实现AUC/ROC
- 【5GC】5G PDU会话以及会话类型
- Monitor Tool 2019(2)Monit on Multiple Instances and Email Alerts
- 买服务器需要看哪些参数,如何看服务器配置
- [after reading] relevant blogs of NiO
- 【琐琐碎碎小知识】 关于部分Unity编辑器在创建瓦片地图时缺乏Tiles选项
- 10 port scanning tools for advanced scanning by network administrators
- LeetCode. 558. Intersection of quadtrees___ Divide and conquer
猜你喜欢
371页20万字2021版智慧城市信息化综合建设方案
95 pages intelligent factory digitalization, intelligent planning, solutions and construction scheme 2022
About: Customizing templates in office 2021
Matlab summary of differential equation solving methods
SparkCore算子及案例,220719,
vben-admin 时间选择器相关配置以及设置不可选择的时间
Exch2010: rebuild the entire DAG
Grouping convolution and deep separable convolution
理解和应用持续集成-Tekton
Proxyman, a native high-performance packet capturing tool, is for you who love learning
随机推荐
MindSpore开源周年狂欢,量子机器学习与深度分子模拟等巨量新特性来袭!
Go daily Gore
APScheduler怎么设置任务不并发
移动端测试必备技能: adb命令和抓包
. Net core rapid development platform, powerful workflow engine, multi system rapid configuration
Necessary skills for mobile terminal test: ADB command and packet capturing
About: Customizing templates in office 2021
【R语言文本挖掘】:情感分析与词云图绘制
[LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I
计算任意根号n的值
clion创建第一个C项目
.Net Core快速开发平台,强大工作流引擎,多系统快速配置
Unity shader 实现图片带圆角和边线border
昇腾AI创新大赛 | 昇思赛道直播培训,高达1000万奖金的获取指南来啦
【腾讯位置组件】 微信公众号h5 调用腾讯地图组件
NetFlow and SNMP are two different network monitoring methods
[LeetCode]剑指 Offer 53 - II. 0~n-1中缺失的数字
JVM tuning method
LeetCode. 1217. Play chips____ Simple greed
A gadget that displays SAP CRM product hierarchy