selenium與python自動化測試模擬登入百度

書生拿起刀發表於2018-09-05

將一些必須必要條件準備好

1,安裝chorme瀏覽器

1,安裝依賴
sudo apt-get install libxss1 libappindicator1 libindicator7
2,下載google安裝包
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
3,安裝
sudo dpkg -i google-chrome*.deb
sudo apt-get install -f

2,安裝chormedrive

1,安裝xvfb以便我們可以無頭奔跑地執行Chrome
sudo apt-get install xvfb
2,安裝依賴
sudo apt-get install unzip
3,下載安裝包
wget -N http://chromedriver.storage.googleapis.com/2.26/chromedriver_linux64.zip
4,解壓縮+新增執行許可權
unzip chromedriver_linux64.zip
5,移動
sudo mv -f chromedriver /usr/local/share/chromedriver
6,建立軟連線
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

3,安裝python依賴

1,安裝Python依賴
pip3 install selenium

百度的模擬登入

```
百度的模擬登入,但手機的驗證碼只能手動輸入
```
from selenium import webdriver
import time

sel = webdriver.Chrome()
myurl = "https://www.baidu.com/"
sel.get(myurl)

#找到登入節點,進行登入
try:
    sel.find_element_by_css_selector("#u1 a:nth-child(7)").click()
    print("click success!!")
except:
    print("click failed")

#js頁面載入出來的頁面必須要有time.sleep來取載入頁面
# 等待頁面載入時間
time.sleep(2)

#找到使用者名稱登入的節點,進行登入
try:
    sel.find_element_by_css_selector("p#TANGRAM__PSP_10__footerULoginBtn").click()
    print("click  username login success!")
except:
    print("not find username login!")

#設定休眠時間.模擬使用者點選
time.sleep(1)

#查詢手機號輸入框,username就是自己要登入的手機帳號
try:
    sel.find_element_by_css_selector("#TANGRAM__PSP_10__userName").send_keys("username")
    print("input success!")
except:
    print("input fail please input again")


#查詢密碼輸入框,進行輸入密碼,password就是對應的密碼
try:
    sel.find_element_by_css_selector("#TANGRAM__PSP_10__password").send_keys("password")
    print("input password success")
except:
    print("input password failed")


#點選登入
try:
    sel.find_element_by_css_selector("#TANGRAM__PSP_10__submit").click()
    print("click success!")
except:
    print("click failed")
time.sleep(1)

#點選傳送驗證碼
try:
    sel.find_element_by_css_selector("#TANGRAM__36__button_send_mobile").click()
    print("send information to your moblephone")
except:
    print("send information failed")
time.sleep(1)   
    
#如何得到驗證碼並輸入
#手機驗證碼暫時沒有辦法自動獲取到,只能手動輸入,這個問題主要是由於設定的安全登入引起的
try:
    info = input("輸入驗證碼:")
    sel.find_element_by_css_selector("#TANGRAM__36__input_vcode").send_keys(info)
    print("input success")
except:
    print("input failed")
time.sleep(1)

###點選確定鍵
try:
    sel.find_element_by_css_selector("#TANGRAM__36__button_submit").click()
    print("click ensure success")
except:
    print("click failed")

相關文章