zoukankan      html  css  js  c++  java
  • 利用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"

    在一开始做这个脚本时经常出现运行到滑块就不动了,即使手动拉动滑块也会报错从而无法登录。

    经小伙伴提醒,是因为浏览器版本过低导致,还以为是腾讯的机器人识别捣的鬼。

  • 相关阅读:
    git使用记录
    【转】话说我打算一天学完object c语法,系列1--------来自书Objective-c程序设计
    【转】看源代码那些事
    中英文对照 —— 数学定律定理(公式及其描述)
    CUDA+OpenGL混合编程
    简明欧洲史
    简明欧洲史
    CUDA一维纹理内存
    CUDA中的常量内存__constant__
    CUDA线程协作之共享存储器“__shared__”&&“__syncthreads()”
  • 原文地址:https://www.cnblogs.com/garvicker/p/8947121.html
Copyright © 2011-2022 走看看