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是有用信息,具體是哪個屬性,可以觀察相較於未登錄時多出來的屬性,依次實驗


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM