利用selenium自動化登錄淘寶


#encoding=utf-8

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from selenium.common.exceptions import UnexpectedAlertPresentException

import time,unittest, re

#登錄頁面

driver=webdriver.Firefox()

driver.get("https://login.taobao.com")

#進入賬戶密碼模式

driver.find_element_by_xpath('/html/body/div/div[2]/div[3]/div/div/div[2]/div[4]/div/div[5]/a').click()

driver.find_element_by_xpath('/html/body/div/div[2]/div[3]/div/div/div[2]/div[3]/form/div[2]/span').click()

driver.find_element_by_id('TPL_username_1').send_keys('賬號')

#賬戶名輸入用的xpath,密碼輸入用By,皮一下

driver.find_element_by_id("TPL_password_1").click()

driver.find_element_by_id("TPL_password_1").send_keys('密碼')

driver.find_element_by_id("J_SubmitStatic").click()#登錄摁扭

 

至此按理說如果是用手工的話就已經可以登錄了 ,然而在跑自動化時發現出現了滑塊

所以需要再次輸入密碼並且滑動滑塊

 

#需要滑塊,再次登錄,先輸入密碼,再滑動滑塊

driver.find_element_by_id("TPL_password_1").click()

driver.find_element_by_id("TPL_password_1").send_keys('密碼')

time.sleep(1)

dragger=driver.find_element_by_id('nc_1_n1z')#.滑塊定位

action=ActionChains(driver)

 

for index in range(500):

    try:

        action.drag_and_drop_by_offset(dragger, 500, 0).perform()#平行移動鼠標,此處直接設一個超出范圍的值,這樣拉到頭后會報錯從而結束這個動作

    except UnexpectedAlertPresentException:

        break

    time.sleep(11)  #等待停頓時間

 

driver.find_element_by_id('J_SubmitStatic').click()#重新摁登錄摁扭

 

print "finish"

 

在一開始做這個腳本時經常出現運行到滑塊就不動了,即使手動拉動滑塊也會報錯從而無法登錄。

經小伙伴提醒,是因為瀏覽器版本過低導致,還以為是騰訊的機器人識別搗的鬼。


免責聲明!

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



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