美文网首页
Python+Selenium自动化测试踩坑实录

Python+Selenium自动化测试踩坑实录

作者: 吱吱菌啦啦 | 来源:发表于2019-05-08 14:12 被阅读0次

    决定入坑自动化测试以来,花了断断续续半年时间学习Python基础到写一些小demo;花了不到一个月的时间学习selenium,完成了第一个项目Web-GUI自动化创建课程。

    对于Web-GUI自动化测试,总结一个关键点:找元素调方法;我的上一篇文章《Web-GUI自动化测试学习路线》总结了入坑自动化测试需要准备和了解的一些东西。

    下面就分享一下自动化创建课程这个项目中,我遇到的一些关键坑和对应的解决办法吧~

    坑一:误删本地host127.0.0.1运行脚本导致WebDriver无法启动,报错信息:Can not connect to the Service chromedriver,截图如下:

    报错截图

    解决办法:去host文件下加上127.0.0.1 localhost保存

    WebDriver的概念:WebDriver其实是Selenium中设计出来的一套api,可用来操作浏览器,启动WebDriver会绑定一个指定端口127.0.0.1,当本地端口被破坏,webdriver自然是无法启动的。

    坑二:xpath定位元素不好用

    xpath 使用路径表达式来选取 xml 文档中的节点或节点集,当我们通过绝对路径定位元素时,如果元素里面的标签是动态设置的,每一次操作标签的值可能会改变,例如div[5]这种,此时xpath容易定位不到。

    解决办法:右击元素选择Copy JS path,然后去掉body后面的动态标签,再采用css_selector方式定位元素,如图所示

    图一 图二

    坑三:xpath和css_selector定位元素都不好用

    在被测业务流程中几个页面同时使用到模态框,模态框有显示和隐藏的属性,如果我们前一部分操作没有完整进行,到下一步操作时模态框被隐藏,此时用xpath和css_selector定位元素都不好用,出现的现象是调用了click方法按钮却无响应。

    解决办法:当模态框被隐藏,还需要用css_selector定位元素时,我们可以用一个方法is_displayed()让模态框展示出来,调用这个方法后再去操作点击事件,这种错误一般发生在业务场景中。

    坑四:未设置等待时间,页面资源未渲染出来或DOM节点未加载完成就执行操作,导致报错,截图如下:

    报错截图

    解决办法:每一个dom操作或打开页面后面加上sleep()方法,根据实际情况酌情确定等待时间

    坑五:使用click()方法,运行脚本发现点击事件失效

    解决办法:很多按钮的点击事件都是放在标签的最外层,当我们用xpath找到元素位置调用点击方法不一定好使,找元素时应该往外层找,找到最外层再去用xpath定位。

    相关文章

      网友评论

          本文标题:Python+Selenium自动化测试踩坑实录

          本文链接:https://www.haomeiwen.com/subject/qtsmoqtx.html