【问题标题】:Appium Ruby - Can't Scroll To Accessibility_IDAppium Ruby - 无法滚动到 Accessibility_ID
【发布时间】:2020-11-12 19:25:06
【问题描述】:

http://appium.io/docs/en/commands/interactions/touch/scroll/

我想滚动到一个元素。我不断收到错误消息。修复可能很简单,但我完全迷失了。

Error: "undefined method `scroll' for #<Appium::TouchAction:0x000055d15d31c980> (NoMethodError)"

我在:

  • Linux Mint
  • Ruby 版本 2.5.1p57
  • touch_action gem (1.3.3)
  • appium_lib gem (10.6.0)
  • appium_lib_core gem (3.7.0)

下面是我的代码。

require 'appium_lib'
require 'touch_action'
#require 'selenium-webdriver'

server_url = "http://127.0.0.1:4723/wd/hub"

opts = {
         caps: {
           platformName: :Android,
           platformVersion: 9,
           deviceName: :'Android Emulator',
           app: 'TheApp-v1.9.0.apk',
           newCommandTimeout: 600,
           automationName: :Appium,
           javascript_enabled: true
         }
  }


driver = Appium::Driver.new(opts, true)
driver.start_driver
ta = Appium::TouchAction.new.driver

sleep 5

scroll1 = ta.scroll_to(:accessibility_id, "Verify Phone Number")
scroll1.perform

sleep 2

print "Completed Successfully!"

driver.driver_quit

【问题讨论】:

    标签: android ruby scroll appium appium-desktop


    【解决方案1】:

    scroll_to 在 Ruby Appium 中一直很不稳定。我建议编写类似于以下内容的自己的逻辑:

    ta = Appium::TouchAction.new.driver
    swipeUp = ta.swipe(startX, startY, endX, endY, duration)
    clicked = false
    
    (0...times).each do
        swipeUp.perform
        unless verifyPhoneNumber.isDisplayed
            verifyPhoneNumber.click
            clicked = true
        end
        break if clicked == true
    end
    

    我的 Ruby 和 Appium 有点生疏了;如果上面有任何错误,我们深表歉意,但您应该明白要点。

    为了可重用性,我可能会使用此逻辑创建一个函数,该函数返回您尝试滚动到的元素。

    【讨论】:

    • 我的结果是“nil:NilClass (NoMethodError) 的未定义方法 `swipe'”
    • 那么你的库有问题。似乎无法创建正确的 TouchAction。我的代码不是独立的,而是要插入到您的框架中。
    猜你喜欢
    • 2015-06-22
    • 2018-08-08
    • 2015-11-22
    • 1970-01-01
    • 2016-12-16
    • 2017-08-27
    • 1970-01-01
    • 2018-09-11
    • 2018-08-08
    相关资源
    最近更新 更多