ChromeOptions常用配置与WebUI实操

38 篇文章 6 订阅
23 篇文章 0 订阅


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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司小幽

真诚赞赏,手留余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值