1. 自动化常见问题:
1.1 Python自动化环境搭建步骤
安装Google浏览器,驱动地址:http://chromedriver.storage.googleapis.com/index.html;
安装selenium模块:pip install selenium
1.2 Selenium中常用的元素定位方法有哪些
class_name、css_selector、id、link_text、name、paratial_link_text、tag_name、xpath
1.3 Selenium常见问题及解决思路
元素定位失败:使用唯一的name、id增加准确性,也有可能页面未加载完全需要等待;
执行效率低:受网速、操作繁琐、页面加载、等待时间等影响,严重拖慢脚本执行速度,可以考虑应用设置异常检测来替代等待时间较长的部分代码,网址尽量是直接打开,查询网页加载缓慢的原因,设置超时时间
2. Selenium常见报错异常:
NoSuchElementException: 找不到元素, 解决方法: 前面加上sleep等待后重试,或换一种定位方式
排查步骤:
NoSuchAttributeException: 元素没有这个属性, 解决方法: 确认定位到的元素是否目标元素, 检查属性拼写
InvalidElementStateException: 元素状态异常 元素只读/不可点击等, 解决方法: 等待或使用js移除元素readonly/disable等限制属性后操作
ElementNotSelectableException:元素不可被选中, 解决方法: 确认原始是否为select标签, 是否禁用
NoSuchFrameException:没有找到指定的frame或iframe, 解决方法: 查看拼写或切换使用frame的id/name/index/定位到的frame
NoSuchWindowException: 没找到窗口句柄指定的窗口, 解决方法: 查看使用的窗口句柄变量拼写
UnexpectedAlertPresentException: 出现了弹框而未处理, 解决方法: 切换到警告框并处理, 如果偶现,使用try...except处理偶现弹框
InvalidSwitchToTargetException: 切换到指定frame或窗口报错, 解决方法: 查看相应的frame或窗口是否能定位到
TimeoutException:查找元素或操作超时, 解决方法: 稍后重试