Appium Ruby - 无法滚动到 Accessibility_ID
Posted
技术标签:
【中文标题】Appium Ruby - 无法滚动到 Accessibility_ID【英文标题】:Appium Ruby - Can't Scroll To 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
【问题讨论】:
【参考方案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。我的代码不是独立的,而是要插入到您的框架中。以上是关于Appium Ruby - 无法滚动到 Accessibility_ID的主要内容,如果未能解决你的问题,请参考以下文章
使用 Appium 和 Ruby 测试 iOS 应用程序时等待元素加载?
使用 Appium、wd 和 React Native 滚动到一个元素
如何使用 TouchAction 滚动 Appium 1.7.1
我想在 Android、java 客户端 v-5.0.4 和 appium v-1.7.1 中使用 appium 向下滚动到特定元素