• selendroid项目实战2--ruby下的TOAST定位


    网上很多 python/java捕获toast的方法,但ruby的简直没见过。

    selendroid客户端是基于selenium,而不一定需要appium,所以很多selenium的方法可以直接使用,想到这点 那就很多方法可以去尝试了。

    事实上:TOAST使用selendroid也是没法定位,而是借用 PARTIAL_LINK_TEXT(部分匹配text) 或者LINK_TEXT(全词匹配)

    使用wait方法 等待text出现。(此方法使用selendroid才能定位到,appium没法定位,具体原因是uiautomation框架的缺陷问题)

    例如:

    python下 toast 信息判断。

    from appium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC

    appPATH="E:\APP\app-debug_3.1.3.876.apk"
    desired_caps={
    'platformVersion':'4.0',
    'deviceName':'',
    'udid':'a6522c88',
    'platformName':'android',
    'automationName':'Selendroid',
    'app':appPATH,
    'appPackage':'com.tenda.router.app',
    'appActivity':'.activity.Anew.Splash.SplashActivity',
    'newCommandTimeout':3600,
    }
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)


    element =WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT,u"保存成功")))
    def find_toast(self,message):
    try:
    element = WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT,message)))
    return True
    except:
    return False

    关键语句就是代码中的黑体部分。

    类似的,使用ruby

    rv=Selenium::WebDriver::Wait.new({:timeout => 5}).until{$b.find_element(:link_text => '保存成功')}

    rv=Selenium::WebDriver::Wait.new({:timeout => 5}).until{$b.find_element(:partial_link_text=> '保存成功')}

    其中timeout是wait的超时时间。

    rv==err时,定位失败。

    rv!=err时,定位成功。

    java等其他方法定位也应该是一样,有selenium包就行。

  • 相关阅读:
    【BZOJ-4289】Tax 最短路 + 技巧建图
    【BZOJ-3895】取石子 记忆化搜索 + 博弈
    【BZOJ-4569】萌萌哒 ST表 + 并查集
    【BZOJ-3832】Rally 拓扑序 + 线段树 (神思路题!)
    【BZOJ-4213】贪吃蛇 有上下界的费用流
    【BZOJ-3122】随机数生成器 BSGS
    【BZOJ-2299】向量 裴蜀定理 + 最大公约数
    【BZOJ-1441】Min 裴蜀定理 + 最大公约数
    【BZOJ-2438】杀人游戏 Tarjan + 缩点 + 概率
    【BZOJ-4310】跳蚤 后缀数组 + ST表 + 二分
  • 原文地址:https://www.cnblogs.com/nemolmt/p/6212881.html
Copyright © 2020-2023  润新知