《0077》第七章 WebUI自动化测试:ChromeOptions常用配置与WebUI实操

《0077》第七章 WebUI自动化测试:ChromeOptions常用配置与WebUI实操《一》ChromeOptions常用配置(1)Chrome浏览器的配置通过webdriver启动的浏览器默认是零缓存(不读取本地缓存数据)的浏览器options没有任何技术含量,所有的内容都是已经写死的内容(一般就是一次编写,以后固定使用)(2)将浏览器默认设置为最大窗体options.a

大家好,欢迎来到IT知识分享网。《0077》第七章

《一》ChromeOptions常用配置
(1)Chrome浏览器的配置
通过webdriver启动的浏览器默认是零缓存(不读取本地缓存数据)的浏览器
options没有任何技术含量,所有的内容都是已经写死的内容(一般就是一次编写,以后固定使用)
(2)将浏览器默认设置为最大窗体
options.add_argument('start-maximized')
(3)设置默认窗体的启动大小
options.add_argument('window-size=400,2000')
(4)无头模式:虽然看不到,但是一切照旧,在一些特定场景下会失败
options.add_argument('--headless')
(5)去掉默认的提示自动化信息,没啥用,一般没有什么影响。警告条可能会导致页面内容的遮挡或者挤压,影响自动化测试
options.add_experimental_option('excludeSwitches', ['enable-automation'])
(6)去掉控制台多余信息
options.add_experimental_option('excludeSwitches', ['enable-logging'])
(7)老版本去掉警告条的参数,已经不生效了。已弃用
options.add_argument('disable-infobars')
(8)读取本地缓存,实现一个有缓存的浏览器,这个指令执行前必须关闭所有本地的chrome浏览器
options.add_argument(r'--user-data-dir=C:\Users\xuzhu\AppData\Local\Google\Chrome\User Data')(chrome://version/:个人资料路径)
(9)去掉账号密码弹窗
prefs = {}
prefs["credentials-enable-service"] = False
prefs['profile.password_manager_enable'] = False
options.add_experimental_option("prefs", prefs)
(10)指定窗口打开在哪个位置
options.add_argument('window-position=2200,500')
(11)隐身模式
options.add_argument('incognito')
(12)去掉控制台打印的多余信息:忽略!暂时参数有问题
options.add_argument("--disable-gpu")
options.add_argument("--log_level= 3")
options.add_argument("--ignore-certificate-errors")
(13)如何评估chromeoptions是否为新版本的修改方案,看options参数即可:老版本是chrome_options,新版本是options
driver = webdriver.Chrome(options=ChromeOptions().options())
(14)整体代码实例
class ChromeOptions:
def options(self):
# chrome浏览器的配置项,可以通过修改默认参数,改变默认启动的浏览器的形态
options = webdriver.ChromeOptions()
# 将浏览器默认设置为最大窗体(启动浏览器,立即最大化;速度稳定性极其高效)
# options.add_argument('start-maximized')
# 设置默认窗体的启动大小
# options.add_argument('window-size=400,2000')
# 无头模式:虽然看不到,但是一切照旧,在一些特定场景下会失败
# options.add_argument('--headless')
# 去掉默认的提示自动化信息:没啥用,一般没有什么影响。警告条可能会导致页面内容的遮挡或者挤压,影响自动化测试
options.add_experimental_option('excludeSwitches', ['enable-automation', 'enable-logging'])
# 去掉控制台多余信息
# options.add_experimental_option('excludeSwitches', ['enable-logging'])
# 老版本去掉警告条的参数,已经不生效了。已弃用
# options.add_argument('disable-infobars')
# 读取本地缓存,实现一个有缓存的浏览器,这个指令执行前必须关闭所有本地的chrome浏览器
options.add_argument(r'--user-data-dir=C:\Users\xuzhu\AppData\Local\Google\Chrome\User Data')
# 去掉账号密码弹窗
prefs = {}
prefs["credentials-enable-service"] = False
prefs['profile.password_manager_enable'] = False
options.add_experimental_option("prefs", prefs)

# 娱乐设置
# 指定窗口打开在哪个位置
# options.add_argument('window-position=2200,500')
# 隐身模式
# options.add_argument('incognito')
# 去掉控制台打印的多余信息:忽略!暂时参数有问题
# options.add_argument("--disable-gpu")
# options.add_argument("--log_level= 3")
# options.add_argument("--ignore-certificate-errors")
return options

《二》WebUI实操
(1)web实操:实现一个从登陆到商品购买的整个流程
(2)整体代码实例
from time import sleep
from selenium import webdriver
from chrome_options import ChromeOptions

print('这是启动的自动化测试执行')
driver = webdriver.Chrome(options=ChromeOptions().options())
driver.implicitly_wait(10)
# 访问URL
driver.get('http://39.98.138.157/shopxo/index.php')

# 实现登录
driver.find_element('link text', '登录').click()
driver.find_element('name', 'accounts').send_keys('xuzhu666')
driver.find_element('name', 'pwd').send_keys('123456')
driver.find_element('xpath', '//button[text()="登录"]').click()

# 手机搜索
driver.find_element('id', 'search-input').send_keys('手机')
driver.find_element('id', 'ai-topsearch').click()
driver.find_element('xpath', '//img[contains(@alt,"苹果")]').click()

# 句柄的切换
handles = driver.window_handles
driver.close()
driver.switch_to.window(handles[1])

# 商品属性添加
driver.find_element('xpath', '//*[@data-value="套餐一"]').click()
sleep(1)
driver.find_element('xpath', '//*[@data-value="银色"]').click()
sleep(1)
driver.find_element('xpath', '//*[@data-value="64G"]').click()
el = driver.find_element('id', 'text_box')
el.clear()
el.send_keys('20')
driver.find_element('xpath', '//button[@title="加入购物车"]').click()

# 购物车页选择商品进入结算
driver.find_element('xpath', '//span[text()="购物车"]').click()
driver.find_element('xpath', '//*[@class="am-ucheck-icons"]').click()
driver.find_element('xpath', '//button[text()="结算"]').click()

# 结算
driver.find_element('xpath', '//*[@data-value="1"]').click()
driver.find_element('xpath', '//button[text()="提交订单"]').click()

# 断言校验
text = driver.find_element('xpath', '//span[text()="支付成功"]').text
assert '支付成功' == text, '支付流程失败,实际结果{}'.format(text)

《三》ChromeOptions常用配置(简化版)
from time import sleep
from selenium import webdriver

class ChromeOptions:
def options(self):
# chrome浏览器的配置项,可以通过修改默认参数,改变默认启动的浏览器的形态
options = webdriver.ChromeOptions()
# 去掉默认的提示自动化信息:没啥用,一般没有什么影响。警告条可能会导致页面内容的遮挡或者挤压,影响自动化测试
options.add_experimental_option('excludeSwitches', ['enable-automation', 'enable-logging'])
# 读取本地缓存,实现一个有缓存的浏览器,这个指令执行前必须关闭所有本地的chrome浏览器
options.add_argument(r'--user-data-dir=C:\Users\xuzhu\AppData\Local\Google\Chrome\User Data')
# 去掉账号密码弹窗
prefs = {}
prefs["credentials-enable-service"] = False
prefs['profile.password_manager_enable'] = False
options.add_experimental_option("prefs", prefs)

return options

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27872.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信