首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Selenium+python自动化83-chrome手机wap模式

Selenium+python自动化83-chrome手机wap模式

作者头像
上海-悠悠
发布2018-04-08 17:48:27
1.6K0
发布2018-04-08 17:48:27
举报

一、前言

这里是群里(QQ群:226296743)风神出60大洋悬赏的问题,学会这篇就是赚了60大洋了!

我的环境: - chrome 62 - chromedriver 2.33 二、遇到问题 1.登录手机版淘宝时候,验证码无法通过点击事件触发 [wap版淘宝](https://login.m.taobao.com/msg_login.htm?spm=0.0.0.0)

二、F12手机模式 1.按f12,点下图按钮(Toggle device toolbar)切换成手机模式

2.切换成手机模式后发现输入手机号后,手动操作是可以触发验证码的 三、chrome设置手机模式 1.添加Options配置,设置成手机模式访问 ``` # coding:utf-8 from selenium import webdriver from selenium.webdriver.chrome.options import Options url = "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) ``` 2.这里的deviceName点开设备选项,选择一个手机设备名称

四、TouchActions 1.这里输入手机号后,用click点‘获取验证码’是无效的,这时候需要换个思维,用TouchActions里面的tap触摸方式去触发‘获取验证码’按钮 2.TouchAction里面的几个用法 ``` class TouchAction(object): def __init__(self, driver=None): self._driver = driver self._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 Options url = "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() ```

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档