Настраивать
- ruby 2.3.3p222 (21.11.2016, редакция 56859) [i386-mingw32]
- appium_lib (9.4.9)
- селен-webdriver (3.4.0)
- touch_action (1.3.3)
- вода (6.3.0)
- Автономный сервер Selenium v3.4.0
- appium-desktop-Setup-1.1.0-beta.4
- Телефон Nexus 5 подключен к ПК через USB. Сервер Appium регистрируется в качестве узла для узла селеновой сетки (все работает нормально)
Требуемое действие / шаг для выполнения
- Я хочу выполнить касание элемента (вместо щелчка)
- При использовании версии selenium-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 (в моем случае browser.lock) работал, поэтому я могу взаимодействовать с телефонными командами. Просто похоже, что я ничего не могу сделать с веб-сайтом, кроме поиска элементов, .get и .click (мне также не удалось прокрутить до элемента или прокрутить вниз).
Я даже пробовал это на веб-сайте https://hammerjs.github.io, чтобы убедиться, что есть элемент, который Предполагается, что вкладка реагирует на события касания (идентификатор области обращения), результат тот же.