selenium+python自动化84-chrome手机wap模式

前言

我的环境

  • 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()

seleniumQQ群:646645429

时间: 2024-10-10 15:58:52

selenium+python自动化84-chrome手机wap模式的相关文章

selenium+python自动化87-Chrome浏览器静默模式启动(headless)

前言 selenium+phantomjs可以打开无界面的浏览器,实现静默模式启动浏览器完成自动化测试,这个模式是极好的,不需要占用电脑的屏幕. 但是呢,phantomjs这个坑还是比较多的,并且遇到问题也看不到页面,无法排查问题. 事实上Chrome浏览器也是可以实现静默模式,在电脑上不显示页面,也能实现自动化测试. 小编环境: python 3.6 selenium 3.6.0 chrome 63.0.3239.84 chromdriver 2.33.506120 (我这个配置是亲测可行的,

selenium+python自动化86-Chrome正在受到自动软件的控制

出现问题 1.用selenium启动浏览器出现'Chrome正在受到自动软件的控制' 2.如果不想看到这种讨厌的提示语,启动浏览器时候加个配置就行了 disable-infobars 1.在浏览器配置里加个参数,忽略掉这个警告提示语 option = webdriver.ChromeOptions() option.add_argument('disable-infobars') 参考代码 # coding:utf-8 from selenium import webdriver # 加启动配置

selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python2&3)

优化html报告 为了满足小伙伴的各种变态需求,为了装逼提升逼格,为了让报告更加高大上,测试报告做了以下优化: 测试报告中文显示,优化一些断言失败正文乱码问题 新增错误和失败截图,展示到html报告里 优化点击截图放大不清晰问题 增加饼图统计 失败后重试功能 兼容python2.x 和3.x 报告效果 1.生成的测试报告效果如下图,默认展示报错和异常的用例,失败重试的用例结果也会统计进去. 2.点击显示截图,可以直接显示截取的图片,无需保存到本地 table表格 1.修改表格的td后面内容,可以

selenium+python自动化82-只截某个元素的图

前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素...小编一下子傻眼了, 苦心人,天不负,终于找到解决办法了. selenium截图 1.selenium提供了几个截取全屏的方法 get_screenshot_as_file(self, filename) --这个方法是获取当前window的截图,出现IOError时候返回False,截图成功返回True. filename参数是保存文件的路径. driver.get_sc

selenium+python自动化83-pip安装selenium报Read time out HTTPSConnectionPool(host='pypi.python.org' port443)

遇到问题 1.有些小伙伴在用pip安装selenium时候报 Read time out HTTPSConnectionPool(host='pypi.python.org' port443) 2.估计这些电脑不怎么正经,总是有奇葩问题 time out解决办法 1.如果是因为网速问题,超时了,可以加大pip安装时候的超时时间 pip --default-timeout=1000 install selenium==2.53.6 2.要是发现等了几分钟还是跟蜗牛一样在爬,那就设置个代理,用下面方

selenium+python自动化77-autoit文件上传

前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜

selenium+python自动化79-文件下载(SendKeys)

前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用SendKeys解决   一.下载场景 1.当点到下载按钮时候,会弹出如下页面 2.如果想点"保存文件"按钮,解决问题思路: - 先按TAB键,移动光标聚焦到保存按钮上 - 再按下ENTER键,这样就能保存了   二.代码实现 # coding:utf-8from selenium impo

selenium+python自动化85-python3.6上SendKeys报错用PyUserInput取代

前言 python2上安装SendKeys库,对于不好定位的元素,用快捷键操作是极好的,那么在3.6上安装时,会报错 python3.6安装SendKeys报错 1.python3.6安装SendKeys是无法安装的,会报错 pip install SendKeys 32位的python3.6安装PyUserInput 1.python3.6分2个版本,1个是32位的python3.6;另外一个是64位的python3.6. 如果你的电脑是32位的,装python3.6 32位版本,直接用pip

Selenium2+python自动化27-查看selenium API

前言     前面都是点点滴滴的介绍selenium的一些api使用方法,那么selenium的api到底有多少呢?本篇就叫大家如何去查看selenium api,不求人,无需伸手找人要,在自己电脑就有.     pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的.也可以生成WEB 页面的,还可以在服务器上以浏览器的方式呈现! 一.pydoc     1.到底什么是pydoc? ,这个是准确的解释:Documentation generato