Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 689|回复: 0

Appium 解决微信公众号、小程序切换 webview 后无法定位元素的问题

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-7-5 03:05:44 | 显示全部楼层 |阅读模式

    如何切换webview进入小程序请参考https://testerhome.com/topics/12003

    脚本思路:
    进入webview后会存在多个handle同Web页签一样,获取所有的handle,然后在遍历所有的handle,通过switch_to_window进行handle切换,当某个handle可以定位到我们需要定位的元素时,然后我们就可以进行之后的自动化操作了!

    1.  
      <code style= "font-family:Menlo, Monaco, Consolas, 'Courier New', monospace;line-height:18px;font-size:12px;color:rgb(68,68,68);border:none;">#coding=utf-8
    2.  
      from appium import webdriver
    3.  
      import time,os,re
    4.  
      from appium.webdriver.common.touch_action import TouchAction
    5.   
    6.   
    7.  
      desired_caps = {}
    8.  
      desired_caps[ 'platformName'] = 'Android'
    9.  
      desired_caps[ 'deviceName'] = 'Android001'
    10.  
      desired_caps[ 'unicodeKeyboard'] = True
    11.  
      desired_caps[ "resetKeyboard"] = True
    12.  
      desired_caps[ "newCommandTimeout"]=30
    13.  
      desired_caps[ 'fullReset'] = 'false'
    14.  
      desired_caps[ 'appPackage'] = 'com.tencent.mm'
    15.  
      desired_caps[ 'appActivity'] = 'com.tencent.mm.ui.LauncherUI'
    16.  
      desired_caps[ 'recreateChromeDriverSessions'] = True
    17.  
      desired_caps[ 'noReset'] = True
    18.  
      desired_caps[ 'newCommandTimeout'] = 10
    19.  
      desired_caps[ 'chromeOptions']={'androidProcess': 'com.tencent.mm:appbrand0'}
    20.  
      driver = webdriver.Remote(command_executor = 'http://127.0.0.1:4723/wd/hub',desired_capabilities = desired_caps)
    21.  
      time.sleep( 2)
    22.  
      time.sleep( 1)
    23.  
      driver.implicitly_wait( 10)
    24.  
      driver.find_element_by_name( '发现').click()
    25.  
      time.sleep( 1)
    26.  
      driver.swipe( 100,1200,100,900)
    27.  
      driver.find_element_by_name( '小程序').click()
    28.  
      driver.find_element_by_name( '美团外卖').click()
    29.  
      time.sleep( 2)
    30.  
      contexts = driver.contexts
    31.  
      print contexts
    32.  
      time.sleep( 2)
    33.  
      driver.switch_to.context( 'WEBVIEW_com.tencent.mm:appbrand0')
    34.  
      print '切换成功'
    35.  
      print driver.current_context
    36.  
      all_handles = driver.window_handles
    37.  
      print len(all_handles)
    38.  
      for handle in all_handles:
    39.  
      try:
    40.  
      driver.switch_to_window(handle)
    41.  
      print driver.page_source
    42.  
      driver.find_element_by_css_selector( '.filter-select.flex-center') #定位“筛选 ”按钮
    43.  
      print '定位成功'
    44.  
      break
    45.  
      except Exception as e:
    46.  
      print e
    47.  
      driver.find_element_by_css_selector( '.filter-select.flex-center').click()
    48.  
      time.sleep( 5)
    49.  
      driver.quit()</code>

    原本:https://blog.csdn.net/qq_35741999/article/details/79430077

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-1-11 12:51 , Processed in 0.064896 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表