Невозможно найти элемент на Twitter LoginPage в Appium - PullRequest
0 голосов
/ 07 октября 2019

Twitter Login Page via appium desktop

Я пытаюсь найти «Войти» на странице входа в Твиттер, используя appium, но я вижу «У вас уже есть аккаунт? Войти» забит под одним локатороми, как и ожидалось, этот локатор также не принимает операцию «касания» на рабочем столе appium.

Поэтому я не могу автоматизировать работу входа в твиттер в Appium.

Может кто-нибудь посоветовать, пожалуйста, как сделать то же самое?

1 Ответ

0 голосов
/ 08 октября 2019

Если Tap by coordinates работает в Appium Inspector на элементе (не просто обычное касание, которое выбирает элемент, а касание по координатам, которое связывает абсолютное местоположение), то вы можете использовать это решение для касания Log in текста.

Сначала мы хотим найти элемент, а затем переместиться на небольшое смещение оси x (около 20 пикселей) к ссылке «Войти».

В зависимости от того, на каком языке вы находитесьиспользуя, вы можете использовать TouchActions класс, чтобы выполнить это:

// get the web element for link
IWebElement logInLink = driver.FindElement(By.XPath("//*[contains(@text, 'Log in')]"));

// get the x,y coordinates for the link
int xCoordinate = logInLink.Coordinates.LocationOnScreen.X;
int yCoordinate = logInLink.Coordinates.LocationOnScreen.Y;

// perform action that moves to coordinates, and taps 20 pixels to the right
new TouchAction(driver).MoveTo(xCoordinate + 20, yCoordinate).Press().Release().Perform();

Возможно, вам придется поиграться со значением смещения + 20 здесь и попробовать 10, 30 и т. д. Вы также можете получить координаты местоположения, используя «Касание по координатам» в Инспекторе Appium, а затем отладить свой код, чтобы получить координаты WebElement, и отрегулировать смещение, чтобы координата х элемента соответствовала координате х желаемого касания. место.

...