自动化面试遇到的问题分析

1. 找不到元素,脚本报“NoSuchElementException:Unable to find element”,或者"定位到了,不能操作,点击无效"

  1) 首先查看自己的“属性值”是否写正确

  2) 元素的标签不唯一,默认找到第一个

  3)向上查看,元素是否在frame或iframe框架中

  4) 查看元素是否在新打开的页面中,需要切换到新窗口

  5) 换其它的定位方式:id/name/class name/tag name/link text/xpath/css selector

  6) 检查元素属性是否是会变动的、是否是隐藏的

  7)添加等待时间sleep(),implicitly_wait(),WebDriverWait(driver, 10, 1).until(定位的元素, messages)

    隐式等待是全局等待,适用于整个测试过程中都需要等待元素出现的情况。

    显式等待更加灵活,可以根据不同的情况设置不同的等待条件,可以等待元素可见、可点击等等。

  8) 查看标签的属性是否有“style=’display:none’->。元素不显示。属性改为block

  9) 查看标签的属性是否有‘οnclick=return false’->。取消点击。属性改为false(在百度首页,登陆的属性就是这个)

  10) 针对于9和8这两种情况,我在网上搜到的结果是:执行js修改属性(这种方法我没有试过,不知道有没有效果)

  js=”document.getElementById(‘title‘).style.display=’block’”

  driver.execute_script(js)

2.出现“Indentation Error”: 是语法问题,脚本代码没有正确对齐

3.类里的方法要求需要2个参数,实例化对象后调用方法时却给多或给少了参数

4.方法或函数传参时数据类型对应不上,如int和str

5.类里的方法必须带上self,而函数不需要(有时候写漏)

6.出现“str object is not callable”的问题(原因是:使用定义的变量名字与内置模块名字相同)

7.appium自动化webview时遇到的chromedriver报错:This version of ChromeDriver only supports Chrome version 78

  解决:https://www.cnblogs.com/aiyumo/p/11881055.html、https://www.jianshu.com/p/b96755bf4916

   chromedriver与chrome版本映射表https://www.jianshu.com/p/af6614aa0927

   下载好对应版本的 chromedriver存放路径:/usr/local/lib/node_modules/appium/node_modules/_appium-      chromedriver@4.24.2@appium-chromedriver/chromedriver/mac/chromedriver.exe       

8. python3使用pip安装HTMLTestRunner,报错:module 'HTMLTestRunner' has no attribute 'HTMLTestRunner'

  解决方法:从网上找到对应修改后的HTMLTestRunner.py文件放在python的lib下

  1. https://www.cnblogs.com/testyao/p/5658200.html
  2. https://blog.csdn.net/wei_ada/article/details/105879199

9. noReset参数:默认为False,不清除session信息,每次启动app都为初始化状态;若设置为True,如果上一个测试用例登陆成功了,下一个测试用例,在打开app时,进来的页面是登录成功后的页面。会保持登录状态。

 

posted on 2020-08-17 14:29  华曦  阅读(322)  评论(0编辑  收藏  举报