1.等待方式的选择
大家都知道Selenium中等待方式有三种,当在页面没有找到定位的元素抛出异常,那么加个等待,还有问题就换个等待方式
- 强制等待 time.sleep(10)
- 显式等待 driver.implicitly_wait(10)
- 隐式等待 WebDriverWait(driver, 10).until(EC.presence_of_element_located(locator))
2.网页的加载顺序:
- 元素或控件(a标签 input)
- 标签中的数据
- 文件、图片
所以有时使用wait.until(EC.presence_of_element_located((By.ID, 'kw'))).click()会提示未定位到元素,是因为元素的出现不意味着元素可点击,因此将presence_of_element_located换成visibility_of_element_located
3.找元素出现问题,没有找到或超时:
- 没有加等待
- 等待时间不够
- 定位表达式有问题
- 显示等待的条件不对
4.前置条件的满足(不是每一步都要通过web自动化测试实现):
- 自动化脚本
- 接口
- 修改数据库
- 手动充值
5.basepage还有哪些方法需要封装?
原则:不以你测试的页面改变,无论哪个页面都可以用到
6.web分层:
- PO,将页面逻辑和测试逻辑分离
- 元素定位层 locator,单独成类,也可以写到类属性中(建议)
- 数据层==>数据分组==>rf,关键字驱动
- 用例层
- basepage==>决定了框架的好坏,通用逻辑
- webelement 元素层(app自动化测试学)
7.前置条件的满足(都可以,不是每一步都要通过web自动化测试实现):
- 自动化脚本
- 接口
- 修改数据库
- 手动充值