zoukankan      html  css  js  c++  java
  • 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包就行。

  • 相关阅读:
    记一次文件上传报错解决过程The temporary upload location is not vali
    Redis反序列化LocalDateTime时报错
    Redis连接池Lettuce Jedis 区别
    Java获取时间打印到控制台
    Java多线程之volatile关键字
    Java多线程之Future,有返回值的线程
    ccf集合竞价
    增广路径求解最大流
    2016年9月ccf
    hash表的建立和查找
  • 原文地址:https://www.cnblogs.com/nemolmt/p/6212881.html
Copyright © 2011-2022 走看看