红宝石appium驱动敲击手势不起作用

问题描述:

设置红宝石appium驱动敲击手势不起作用

  • 红宝石2.3.3p222(2016年11月21日修订版56859)[I386-的mingw32]
  • appium_lib(9.4.9)
  • 硒的webdriver(3.4.0)
  • touch_action(1.3.3)
  • 的Watir(6.3.0)
  • 硒Standalone服务器v3.4.0
  • appium桌面 - 设置 - 1.1.0-beta.4
  • 的Nexus 5手机通过USB Appium服务器注册连接到PC,以硒网格节点的节点(即一切工作正常)

通缉动作/步骤来执行

  • 欲当使用硒的webdriver版本> = 3.4.0

到(而不是单击)

  • 的元件上执行的抽头IRB

    require 'appium_lib' 
    require 'touch_action' 
    grid_url = "http://localhost:4444/wd/hub" 
    capabilities = { 
    'browserName' => 'chrome', 
    'platformName' => 'Android', 
    'deviceName' => 'Nexus5', 
    'newCommandTimeout' => '15000', 
    'javascript_enabled' => true 
    } 
    browser = Appium::Driver.new(caps: capabilities, url: grid_url).start_driver 
    browser.get("https://www.google.nl") 
    sleep 5 
    inputfield = browser.find_element(:id, 'lst-ib') 
    inputfield.click 
    inputfield.send_keys("appium mobile gestures ruby") 
    sleep 2 
    button = browser.find_element(:id, 'tsbb') 
    

    到目前为止这么好。 但是,当我尝试执行选项卡操作。它失败

    irb(main):026:0> button.touch_action(:tap) 
    NoMethodError: undefined method `executeScript' for #<Selenium::WebDriver::Remote::OSS::Bridge:0x3119b50> 
    from C:/Ruby23/lib/ruby/gems/2.3.0/gems/touch_action-1.3.3/lib/touch_action/selenium-webdriver.rb:9:in `touch_action' 
    from (irb):26 
    from C:/Ruby23/bin/irb.cmd:19:in `<main>' 
    

    我有感觉,我错过了什么小细节(我是新来appium),我只是不明白的错误,我在这里做。 所以如果有人能指出我的方向真的很有帮助。 例如滚动也没做我什么(只是返回nil) https://appium.readthedocs.io/en/stable/en/writing-running-appium/touch-actions/

    我也试过,我发现这里的一些其他命令:在我的情况下,浏览器 https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/appium-bindings.md

    例如driver.lock(。锁),工作,所以我可以与电话命令进行交互。它看起来像我除了查找元素,.get和.click(我也无法滚动到一个元素或向下滚动)之外的任何网站。

    我甚至在https://hammerjs.github.io网站上试过这个,以确定有一个标签被认为是响应触摸事件(id id hitarea)的元素,结果相同。

  • +0

    我注意到,当我用appium_lib宝石版本8.0.3,我没有得到错误了,但我仍然不能刷卡,标签(什么都没有发生),所以我仍然缺少我的配置我想的东西。任何帮助,将不胜感激。 –

    +0

    Touch_action最有可能不与硒的webdriver的新版本(executeScript V/S execute_script)没有工作。 我曾与touch_action宝石的开发者联系,他问我用硒webdriver的较低版本。我尝试过,但结果与我之前的评论中提到的相同。没有错误出现,但我也没有看到水龙头/滑动。下面是我记录一个例子https://1drv.ms/v/s!AiGFi7A5PO9Uhacq5Wv056uCTZp9uw链接 –

    所以,也许我最初的问题是不是真的清楚,但我真的不知道我exaclty一直在寻找或者(没有那么多的关于Ruby + appium +触摸动作组合在Android + Chrome的例子与测试)

    所以我尝试了touch_action红宝石宝石。不幸的是,这不是我想要的。也许我正在做一些基本错误的事情,但我无法让它与最新的watir和selenium-webdriver一起工作。

    然后我试图appium_lib这让我有点headacke的,因为我看到了这样的例子很多(甚至一些好的红宝石的),但我再次做了完全一样的,它似乎并没有在我的机器上工作。我的设置的问题是,驱动程序在CHROMIUM上下文中,并且只能在NATIVE_APP上下文中执行Appium :: TouchAction .perform。 https://discuss.appium.io/t/ruby-appium-touchaction-perform-returns-error-method-has-not-yet-been-implemented/18308 使用appium/Android的驱动程序时,记住这一点,你要使用的TouchAction事件。