zoukankan      html  css  js  c++  java
  • unittest—selenium自动化登录百度绕过校验

    这个脚本融合了unittest的校验,以及selenium的自动化,并且通过派发cookie信息成功绕过百度的验证码,并且利用装饰器成功只打开一次浏览器

    #encoding=utf-8

    from selenium import webdriver

    import time,unittest, re

    class Test(unittest.TestCase):

      @classmethod#添加到setUpClass以及下方的 tearDownClass使得只打开一次浏览器,避免重复操作挤占运行空间

      def setUpClass(self):

        self.driver=webdriver.Firefox()

        #driver=webdriver.Chrome()

        self.driver.get("http://www.baidu.com")

      def test_login(self):

        self.driver.add_cookie({u'name':u'BDUSS', u'value':u'自己的value'})#通过抓包找到cookie内BDUSS属性,将自己的value值写入,这是绕过验证码的核心

        time.sleep(3)

        self.driver.refresh()

      def test_login_successful(self):

        text=self.driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[3]/a[7]/span").text#xpath必须双引号,单引号会运行不过去

        #text=self.driver.find_element_by_id('s_username_top').text

        target='用户名'

        str(text)

        #print text

        self.assertEqual(text,target)#此脚本校验成功登陆的原理是成功登陆后会显示自己的用户ID,如果抓到了自己的ID名说明登录成功了

      @classmethod

      def tearDownClass(self):

        self.driver.quit()

    if __name__=='__main__':

      unittest.main()

     

    介绍一个在制作脚本时的小技巧,一般想要抓到有用的cookie信息,可以通过点击登陆后看最新的报文更新,一般xhr报文的cookie是有用信息,具体是哪个属性,可以观察相较于未登录时多出来的属性,依次实验

  • 相关阅读:
    python: 字符串按空格分成列表split与加密密码maketrans
    android 几个工具方法
    华硕N43sl VNP 连接问题 800 807 621
    git 创建新项目,下载工程,合并和更新工程简单应用记录
    android分析windowManager、window、viewGroup之间关系(二)
    android分析windowManager、window、viewGroup之间关系(一)
    meta-data获取小结
    转载: 项目经验分享
    不想写代码了
    MapReduce源码分析总结(转)
  • 原文地址:https://www.cnblogs.com/garvicker/p/9044462.html
Copyright © 2011-2022 走看看