Python3学习笔记_web自动化基础十二_20200730
如何避免出现上下两个页面同样的元素定位方式重合的问题?
比如:
index_page=login
actual=index_page.click_invest_btn().write_money(1).get_error_msg()
还未进入首页呢,下面的第二行代码就执行了,就导致找不到元素,解决办法:
-等待下一个页面加载完成
-使用强制等待:time.sleep(1)
-讨巧的方式:进入这个页面之后,使用get()这个操作重新加载一下页面【这个是讨巧的方式,有的页面用不了】
actual=index_page.get().click_invest_btn().write_money(1).get_error_msg()
通用的方式:
显示等待
等待页面加载完成才初始化这个页面:
title='互联网金融平台'
# 等待某个页面加载完成,显示等待
# titile_contains:页面标题包含什么内容
try:
WebDriverWait(self.driver,timeout=20).until(
expected_conditions.title_contains(self.title)
)
except:
print('你的操作可能没有进入对应的页面,可能会引发异常')
-检查相邻页面的元素定位方式,有没有完全一样的---操作难度比较大,很难去对比,找到,很麻烦,费时间【一般不用这种方式】
basepage
页面行为分类:
-某个页面的特定行为,比如:定位登录这个元素
-每个页面通用的行为,比如:定位一个元素,不知道这个元素长什么样子
每个页面的通用方法放在一个公共页面类当中,就叫basepage
这里的bagepage和之前接口的common中放的通用方法是一样的,也可以把basepage放到common当中
每个页面都能直接调用,不会因为项目不同发生改变的浏览器通用操作的封装,放在一个类当中,类就是basepage
basepage 是每个页面的父类
basepage 思想 相当于:====》类继承
# 如果父类的初始化满足不了这个类,那么可以自己再单独定义初始化方法
def __init__(self,driver):
super().__init__(driver)
#其他的初始化操作
浏览器通用方法:
窗口滑动
鼠标滑动
鼠标双击
鼠标右击
鼠标拖拽
窗口切换
iframe切换
打开新标签页
Python经典循环导入问题:
多个模块互相调用的时候,避免互相调用造成死循环的问题,
如果真的有两个模块要互相调用,可以将导入的代码写到函数里面,不写到模块开头