selenium+python自动化84-chrome手机wap模式(登录淘宝页面)

  • 前言
  • 遇到的问题
  • Chrome手机模式
  • TouchAction
  • 参考代码
  • 附:

转载自: https://www.cnblogs.com/yoyoketang/p/7942275.html

前言

chrome手机wap模式登录淘宝页面,点击验证码无效问题解决。
切换到wap模式,使用TouchActions模块用tap方法触摸

我的环境

  • chrome 62
  • chromedriver 2.33

遇到的问题

1.登录手机版淘宝时候,验证码无法通过点击事件触发
[wap版淘宝](https://login.m.taobao.com/msg_login.htm?spm=0.0.0.0)

但是在F12 切换成手机模式后发现输入手机号后,手动操作是可以触发验证码的

Chrome手机模式

1.添加Options配置,设置成手机模式访问

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsurl = "https://login.m.taobao.com/msg_login.htm?spm=0.0.0.0"mobile_emulation ={ #"deviceName": "Apple iPhone 3GS"#"deviceName": "Apple iPhone 4"#"deviceName": "Apple iPhone 5"#"deviceName": "Apple iPhone 6"#"deviceName": "Apple iPhone 6 Plus"#"deviceName": "BlackBerry Z10"#"deviceName": "BlackBerry Z30"#"deviceName": "Google Nexus 4"#"deviceName": "Google Nexus 5"#"deviceName": "Google Nexus S"#"deviceName": "HTC Evo, Touch HD, Desire HD, Desire"#"deviceName": "HTC One X, EVO LTE"#"deviceName": "HTC Sensation, Evo 3D"#"deviceName": "LG Optimus 2X, Optimus 3D, Optimus Black"#"deviceName": "LG Optimus G"#"deviceName": "LG Optimus LTE, Optimus 4X HD" #"deviceName": "LG Optimus One"#"deviceName": "Motorola Defy, Droid, Droid X, Milestone"#"deviceName": "Motorola Droid 3, Droid 4, Droid Razr, Atrix 4G, Atrix 2"#"deviceName": "Motorola Droid Razr HD"#"deviceName": "Nokia C5, C6, C7, N97, N8, X7"#"deviceName": "Nokia Lumia 7X0, Lumia 8XX, Lumia 900, N800, N810, N900"#"deviceName": "Samsung Galaxy Note 3"#"deviceName": "Samsung Galaxy Note II"#"deviceName": "Samsung Galaxy Note"#"deviceName": "Samsung Galaxy S III, Galaxy Nexus"#"deviceName": "Samsung Galaxy S, S II, W"#"deviceName": "Samsung Galaxy S4"#"deviceName": "Sony Xperia S, Ion"#"deviceName": "Sony Xperia Sola, U"#"deviceName": "Sony Xperia Z, Z1"#"deviceName": "Amazon Kindle Fire HDX 7″"#"deviceName": "Amazon Kindle Fire HDX 8.9″"#"deviceName": "Amazon Kindle Fire (First Generation)"#"deviceName": "Apple iPad 1 / 2 / iPad Mini"#"deviceName": "Apple iPad 3 / 4"#"deviceName": "BlackBerry PlayBook"#"deviceName": "Google Nexus 10"#"deviceName": "Google Nexus 7 2"#"deviceName": "Google Nexus 7"#"deviceName": "Motorola Xoom, Xyboard"#"deviceName": "Samsung Galaxy Tab 7.7, 8.9, 10.1"#"deviceName": "Samsung Galaxy Tab"#"deviceName": "Notebook with touch""deviceName": "iPhone 6"# Or specify a specific build using the following two arguments#"deviceMetrics": { "width": 360, "height": 640, "pixelRatio": 3.0 },#"userAgent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19" }
options = Options()
options.add_experimental_option("mobileEmulation", mobile_emulation)
driver = webdriver.Chrome(chrome_options=options)driver.get(url)

2.这里的deviceName点开设备选项,选择一个手机设备名称

TouchAction

1.这里输入手机号后,用click点‘获取验证码’是无效的,这时候需要换个思维,用TouchActions里面的tap触摸方式去触发‘获取验证码’按钮

2.TouchAction里面的几个用法

class TouchAction(object):def __init__(self, driver=None):self._driver = driverself._actions = []def tap(self, element=None, x=None, y=None, count=1):模拟手指触摸屏def press(self, el=None, x=None, y=None):短按:模拟手指按住一个元素,或者坐标def long_press(self, el=None, x=None, y=None, duration=1000):长按:模拟按住一个元素,或者坐标def wait(self, ms=0):按住元素后的等待时间def move_to(self, el=None, x=None, y=None):移动手指到另外一个元素,或者坐标,注意这里坐标不是绝对坐标,是偏移量def release(self):释放手指def perform(self):执行前面的动作

参考代码

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.touch_actions import TouchActions
from selenium.webdriver.chrome.options import Optionsurl = "https://login.m.taobao.com/msg_login.htm?spm=0.0.0.0"# 设置成手机模式
mobile_emulation = {"deviceName":"iPhone 6"}
options = Options()
options.add_experimental_option("mobileEmulation", mobile_emulation)
driver = webdriver.Chrome(chrome_options=options)driver.get(url)driver.find_element_by_id("username").send_keys("yoyoketang")# 触摸事件
el = driver.find_element_by_id('getCheckcode')
TouchActions(driver).tap(el).perform()

TouchAction提供的其他方法:

double_tap(on_element)                                                #双击
flick_element(on_element, xoffset, yoffset, speed)         #从元素开始以指定的速度移动
long_press(on_element)                                            #长按不释放
move(xcoord, ycoord)                                                #移动到指定的位置
perform()                                                                    #执行链中的所有动作
release(xcoord, ycoord)                                             #在某个位置松开操作
scroll(xoffset, yoffset)                                                      #滚动到某个位置
scroll_from_element(on_element, xoffset, yoffset)         #从某元素开始滚动到某个位置
tap(on_element)                                                             #单击
tap_and_hold(xcoord, ycoord)                                        #某点按住

附:

selenium touchAction官方文档:
https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html

selenium+python自动化84-chrome手机wap模式(登录淘宝页面)相关推荐

  1. Selenium自动登录淘宝,我无意间发现了登录漏洞!

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 蓬莱文章建安骨,中间小谢又清发. ...

  2. Selenium 自动登录淘宝,我无意间发现了登录漏洞!

    G作者:Pineapple_C 原文链接:http://suo.im/6toKOR 注意:本文经过原文作者授权发布,大家可以关注他的博客,和作者一起学习. 这篇文章是一个很好的学习例子,作者能够在学习 ...

  3. 使用python selenium爬取淘宝商品信息 自动登录淘宝和爬取某一宝贝的主图,属性图和详情图等等

    selenium作为一个自动化测试工具非常好用,谁用谁知道啊. 先说如何登录淘宝,淘宝现在直接用会员名和密码登录会有滑块验证,找了网上说的几种方法和自己尝试了一番效果还是不太理想,实测过程中,即使滑块 ...

  4. Python《使用Selenium 和pyautogui 实现自动登录淘宝》

    有了上一博文学习即基础,这一节想来学习下自动登录淘宝. 直接整上测试代码: from selenium import webdriver # import logging import time fr ...

  5. python+ADB实现手机控制(2021淘宝的喵糖活动自动点击)

    python+ADB实现手机控制(2021淘宝的喵糖活动自动点击) 背景 环境 ADB(Android 调试桥) python环境 手机环境 简单程序 背景 双十一 TaoBao的活动太折磨人了,要一 ...

  6. selenium+python自动登录淘宝问题

    最近升级了chrome,再运行脚本的时候发现, 到了登录界面,无法选择账号密码登录了,一直停留在扫二维码登录的那个界面.[问题1] 思考了一下,可能是升级了chrome没升级webdriver导致的, ...

  7. selenium跳过webdriver检测并模拟登录淘宝

    文章目录 简介 编写思路 使用教程 演示图片 源代码 简介 模拟登录淘宝已经不是一件新鲜的事情了,过去我曾经使用get/post方式进行爬虫,同时也加入IP代理池进行跳过检验,但随着大型网站的升级,采 ...

  8. 模拟登录淘宝--Python

    模拟登录淘宝–Python 由于淘宝开始检测selenium,要绕过检测非常麻烦.故使用另外一款Python的自动化工具:Pyppeteer,来模拟登录淘宝获取cookie.目前没有遇到滑块验证(该有 ...

  9. Selenium自动登录淘宝,我无意间发现了登录漏洞?

    作者:Pineapple_C 原文链接:https://blog.csdn.net/pineapple_C/article/details/107641799?utm_source=app 注:本文经 ...

  10. Python3+Selenium 实现自动登录淘宝+清空购物车

    此博客的目的为分享自己用Python3和Selenium实现的自动登录淘宝和清空购物车的程序逻辑.经测试,此程序有时可以"秒杀"一些供给相对充足的限量商品,但无法秒杀疫情期间的任何 ...

最新文章

  1. JMH和Arthas定位问题的案例分享
  2. 程序员无休止加班的真正原因
  3. 百度嵌入式深度学习框架Paddle-Mobile介绍
  4. 机器学习之多变量线性回归(Linear Regression with multiple variables)
  5. php ajax取不到值,PHP没有从Ajax获取值
  6. Apache Lucene中的并发查询执行
  7. localStorage封装借口store.js的使用
  8. mysql database table_mysqldump database table
  9. c盘空间太小怎么办 c盘如何扩展分区
  10. 怎么设置计算机 图标显示桌面快捷方式,如何设置显示桌面快捷键 设置显示桌面快捷键方法【图文】...
  11. 《阿丽塔:战斗天使》:人类与机器人真的有爱情吗?
  12. 数值分析(2):线性代数方程组的直接解法
  13. 大数据三篇论文—The Google File System中文版
  14. ASAM_CCP_V2.1.0_cn
  15. Source Insight4.0字体大小及护眼背景配置
  16. 动态规划-剪绳子问题
  17. CentOS下安裝Nvidia docker 2.0:[Errno 256] No more mirrors to try錯誤及解決方式
  18. 新唐单片机如何生成精确延迟
  19. 详解液晶面板制造全过程
  20. 从画面质量看国产3D网游的技术性崛起

热门文章

  1. java获取异常信息
  2. 亚马逊五点描述是什么?有什么作用?
  3. mhl数据线_superMHL接口诞生:只需五个针脚 干掉HDMI
  4. 局域网出现广播风暴怎么办?如何阻止广播风暴?
  5. 下列不是SQL的服务器组件,北语网院15秋《数据库应用(SQL server)》作业3答案...
  6. 知识图谱从入门到应用——知识图谱的知识表示:向量表示方法
  7. 认知LTE簇优化和全网优化
  8. SSH项目整合基本步骤
  9. Latex algorithm Input Output
  10. [jzoj 4244] 【五校联考6day2】yi {贪心}