• 0
  • 0
分享
  • 太赞了! 菜鸟利用Python实现网站自动签到——软件测试圈
  • 恬恬圈 2023-08-25 13:25:13 字数 2020 阅读 2095 收藏 0

  前情提要

  小五收藏了一些论坛网站,经常需要自己登录签到,以此来获得积分金币等等。

  步骤倒是并不复杂,只需要填写账号密码登录,然后点击签到即可。

1-1.jpg

  但天天手动太容易忘了这件事啦。毕竟我们都会用python了,那就可以使用Selenium操作;浏览器实现自动签到啊!

  现在开始上手工作!

  准备工作

  首先我们需要先安装Selenium,从而实现后续自动化操控浏览器。我们可以利用它来模拟鼠标按键,跟按键精灵很类似。

  pip install selenium

  待其安装完成后,准备另一个必需工具。

  selenium可以操控多款浏览器,包括谷歌,火狐等,这里小五使用的是谷歌浏览器。

  这里需要知道浏览器的版本信息,只需打开“关于Chrome”,就可以看到了。

1-2.jpg

  如上图所示,我的浏览器版本是89.0.4389.114。然后我们需要前往(http://chromedriver.storage.googleapis.com/index.html)找到与浏览器相匹配的版本,没有一模一样的选择最近的版本也可以。

1-3.jpg

  点击进去选择对应的系统版本,下载后将chromedriver.exe解压出来,最后将其放到与python.exe文件相同的路径下。

  如果你是用的anaconda就放在下面目录下:

  C:\Users\Administrator\anaconda3

  具体位置如下图所示:

1-4.jpg

  下面我们就可以正式用python自动签到了。

  代码及讲解

  首先打开我要登录的网站,具体域名就不分享给大家了。

  先导入selenium库,这里只需使用selenium中的webdriver模块,运行:

  from selenium import webdriver

  打开下载的浏览器驱动,设置隐式等待时:

  wd=webdriver.Chrome()
  wd.implicitly_wait(1)

  执行代码的时候会自行去寻找chromedriver.exe(在python目录下寻找)。如果我们前面没有把它放在固定的路径下,就需要在这里指定chromedriver.exe路径。

  打开登录网页:

  wd.get('待登录网站URL')

1-5.jpg

  如上图所示,模拟浏览器已经打开了网站的登录界面。这个时候我们需要定位到输入框、密码框以及登录按钮等。

  这里不用担心,Selenium提供了很多种定位DOM元素的方法,各有各的特点和优势。今天就主要使用 by_xpath() 这个方法来定位元素,这个方法比较灵活方便,大部分属性都可以通过它来定位。

  【检查】→【进入开发者模式】点击左上角的图标,再点击你要找的对象,即可得到该对象的信息。点位该对象后,右键copy它的XPath!

1-6.gif

  input = wd.find_element_by_xpath('//*[@id="email"]')
  input.send_keys('kxpython@163.com')

  同理,我们可以定位到密码框,再send_keys输入密码:

  password = wd.find_element_by_xpath('//*[@id="password"]')
  password.send_keys('kxpython')

1-7.jpg

  至于需要点击的对象,可以使用click()来实现模拟点击的功能。

  点击登录

  button_login = wd.find_element_by_xpath('//*[@id="app"]/section/div/div/div/div[2]/form/div/div[5]/button')
  button_login.click()

  点击跳过弹窗

  一般登录后会有个小弹窗,关闭即可。

1-8.jpg

  wd.find_element_by_xpath('//*[@id="popup-ann-modal"]/div/div/div[3]/button').click()

  尝试签到

1-9.jpg

  try:
     wd.find_element_by_xpath('//*[@id="checkin-div"]/a').click()
  except:
     print("已签到")

  最后要记得关闭浏览器窗口。

  wd.quit()

  注:close()关闭当前窗口,wd.quit()则是关闭所有窗口。

  点击运行上面的全部代码,即可实现python对网站的自动签到。我们还可以将该python脚本设置为定时任务,这样就不用每天手动去签到啦!

  小结

  作为演示的这个网站非常简单,如果大家也想用python来自动签到的话,要根据自己的网站情况来改写脚本。

  其实 Selenium 更多的用法是自动化测试、爬虫等。


作者:何威风    

来源:http://www.51testing.com/html/93/n-7792493.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:接口测试放在迭代中,流程怎么走呢?阿常回答:我从新项目接口、旧接口改造这两种情况分享下我的思路,供参考。1 新项目接口需求交底     ↓开发进行接口定义 & 测试编写用例     ↓开发更新swagger文档 & 通知测试     ↓测试完善接口用例     ↓测试执行接口测试     ↓测试编写测试报告     ↓接口用例收录至接口自动化用例集     ↓冒...
            0 0 1164
            分享
          • 作为测试工程师,我们需要具备扎实的编程技能,能够熟练掌握至少一门编程语言。因为测试工作本身就需要编写测试脚本、开发自动化测试工具和测试框架等,这些工作离不开编程语言的支持。同时,编程语言的不断更新和变化也要求我们不断学习和提升。选择一门适合自己的编程语言学习,可以帮助我们更好地开展测试工作并提升自我竞争力。我们可以根据自己的工作需要和兴趣爱好,选择合适的编程语言进行学习。例如,如果我们需要进行Web自动化测试,那么就可以学习Java、Python等语言;如果需要进行移动端自动化测试,那么就可以学习kotlin、Swift等语言。选择合适的编程语言学习,有利于我们更快地掌握编程技能,更好地解决测...
            0 0 683
            分享
          • 一、为什么抓包1、从功能测试角度通过抓包查看隐藏字段Web 表单中会有很多隐藏的字段,这些隐藏字段一般都有一些特殊的用途,比如收集用户的数据,预防 CRSF 攻击,防网络爬虫,以及一些其他用途。这些隐藏字段在界面上都看不到,如果想检测这些字段,就必须要使用抓包工具。2、通过抓包工具了解协议内容方便开展接口和性能测试性能测试方面,性能测试其实就是大量模拟用户的请求,所以我们必须要知道请求中的协议内容和特点,才能更好的模拟用户请求,分析协议就需要用到抓包工具;接口测试方面,在接口测试时,虽然我们尽量要求有完善的接口文档。但很多时候接口文档不可能覆盖所有的情况,或者因为文档滞后,在接口测试过程中,还...
            1 1 2720
            分享
          • 在我们的测试工作中,除了需要不断的学习新知识外,还有一个可能常常被我们忽视的工作,那就是反思。反思的重要性不言而喻,可以帮助我们总结过往的经验教训,可以帮助我们重新复盘过去工作中的得失,可以让我们通过曾经犯下的错误找到未来需要规避的问题,可以通过积累的经验获取后续工作中更高效的方法。那么问题来了,做测试的我们,该反思什么呢?在我们团队的日常工作中,每隔一段时间我们就会组织召开一次学习总结会。在这个会上,我们会去回顾过去一段时间工作中大家遇到的问题、学到的新知识、沉淀的经验和方法。在这个过程中,大家互相交流,互相碰撞,互相提问,互相弥补。通过这样的讨论学习,每个人都能感受到这些碰撞出的火花带来的...
            0 1 2261
            分享
          •   7 月 7 日晚,@懂车帝辟谣 官方微博发布首条消息,网传“懂车帝举办改装车大会被一锅端了”为谣言。  网传视频显示,一群人在地下车库中聚集,视频中确实出现了懂车帝标志的标牌。  IT之家注意到,懂车帝公告称,该活动系主办方自行组织的车友聚会活动,与懂车帝无关。现场围挡上带懂车帝品牌内容的物料为此前活动遗留,事发后被用来维护现场秩序,与本次活动无关。作者:汪淼原文链接:IT之家(ithome.com)
            0 0 495
            分享
      • 51testing软件测试圈微信