Перейти к содержимому

Фотография

Как выполнить touchActions в EDGE


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 All

All

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 15 октября 2018 - 07:53

Добрый день!

 

Связка Selenium+Java, тесты гоняются на таблете с сенсорным экраном под win10 в microsoft EDGE.

Нужно в одном месте сэмулировать тап пальцем по экрану.

 

Создал класс для драйвера:

public class TouchWebDriver extends RemoteWebDriver implements HasTouchScreen {
        private RemoteTouchScreen touch;
        public TouchWebDriver(URL remoteAddress, DesiredCapabilities desiredCapabilities) {
            super(remoteAddress, desiredCapabilities);
            touch = new RemoteTouchScreen(getExecuteMethod());
        }
        @Override
        public TouchScreen getTouch() {
            return touch;
        }
    }

Получаю экземпляр:

driver = new TouchWebDriver(new URL(Env.nodeUrl), capabilities);

В тестовом методе пишу:

new TouchActions(driver).singleTap(myWebElement).perform();

И вываливаюсь в эксепшн:

org.openqa.selenium.WebDriverException: Not implemented (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: 'SPBNB-PRC1843', ip: '10.233.23.138', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_172'
Driver info: com.tsystems.mshop.common.appLogic.ApplicationManager$TouchWebDriver
Capabilities {InPrivate: false, acceptSslCerts: true, applicationCacheEnabled: true, browserName: MicrosoftEdge, browserVersion: 41.16299.15.0, javascriptEnabled: true, locationContextEnabled: true, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, platformVersion: 10, takesElementScreenshot: true, takesScreenshot: true, webStorageEnabled: true, webdriver.remote.sessionid: 02A480FB-D544-4A63-B082-F93...}
Session ID: 02A480FB-D544-4A63-B082-F93CB739C96C

	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
	at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
	at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
	at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
	at org.openqa.selenium.remote.RemoteExecuteMethod.execute(RemoteExecuteMethod.java:35)
	at org.openqa.selenium.remote.RemoteTouchScreen.singleTap(RemoteTouchScreen.java:36)
	at org.openqa.selenium.interactions.touch.SingleTapAction.perform(SingleTapAction.java:35)
	at org.openqa.selenium.interactions.CompositeAction.perform(CompositeAction.java:36)
	at org.openqa.selenium.interactions.Actions$BuiltAction.perform(Actions.java:633)
	at org.openqa.selenium.interactions.Actions.perform(Actions.java:594)

Подскажите, пожалуйста, что я делаю не так? Может из окружения чего-то не хватает?


  • 0

#2 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 15 октября 2018 - 08:13

 

 

Not implemented

посмотрите в документации по вашему драйверу, вообще есть там такой метод

 

вроде есть

https://seleniumhq.g...ium.WebElement-

 

может попробуйте на хроме


  • 0

#3 All

All

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 15 октября 2018 - 09:05

Проблема в том, что на зарубежных сайтах, где я нашел упоминания про touchActions все пользуют для тестирования мобилок с appium. Для винды ничего не нашел.

 

хром кидает org.openqa.selenium.ElementNotVisibleException: element not visible, хотя элемент виден. Но это я тестирую хром, который на ПК. На таблете нужно админа дождаться.


  • 0

#4 All

All

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 15 октября 2018 - 09:50

Похоже, что все-таки, проблема в EDGE драйвере, т.к. под хромом метод 

TouchActions move(int x, int y)

работает, а EDGE вываливается с той же ошибкой, что в первом посте.

Если что, версия EDGE драйвера 16299.15


  • 0

#5 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 15 октября 2018 - 10:07

значит идите в баг-тракинг эдж драйвера и возможно там уже этот баг занесён


  • 0

#6 All

All

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 15 октября 2018 - 10:17

значит идите в баг-тракинг эдж драйвера и возможно там уже этот баг занесён

В баг трекинге смотрел поиском по touchActions. Вроде, ничего не нашел. Проблема в том, что это 16299.15 - это не последняя версия драйвера. Есть новее. Но я не могу обновить по своему желанию винду на таблете + у нас в сторях версионность жестко зашита. Обожаю мелкомягких)))

 

За помощь - спасибо!


  • 0

#7 All

All

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 15 октября 2018 - 11:16

Хром на singleTap не ругается, но ничего не делает.

А вот на longPress кидает эксепшн: org.openqa.selenium.WebDriverException: unimplemented command: session/772fe412ef13d219dd97967445ce426e/touch/longclick

 

Где-то что-то я упускаю.


  • 0

#8 All

All

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 15 октября 2018 - 12:00

https://docs.microso...-edge/webdriver

 

список поддерживаемых/неподдерживаемых действий для эдж. все, что touch не поддерживается


  • 0

#9 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 15 октября 2018 - 13:47

значит раньте тач тесты только на хедлесс хроме например


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных