#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"
在一開始做這個腳本時經常出現運行到滑塊就不動了,即使手動拉動滑塊也會報錯從而無法登錄。
經小伙伴提醒,是因為瀏覽器版本過低導致,還以為是騰訊的機器人識別搗的鬼。