Глядя на ios и android, прокрутите вверх и вниз, пока элемент не найден, а затем нажмите - PullRequest
0 голосов
/ 24 марта 2020

Я перепробовал много блогов и дискуссий о прокрутке ios & android в appium, java. но похоже, что большинство методов устарели или не работают. пожалуйста помогая. Я использую appium 1.15.1, java, селен.

в поисках быстрой помощи.

Я пытаюсь выполнить следующий код, но он прокручивается дважды и даже не нажимает.

Привет,

Я на Ма c и работаю с реальным устройством. Я использую Appium 1.15.1, Selenium, Java с POM. Я написал следующий код для iOS проведите пальцем вниз.

Привет,

public void chkMenuOptioniOS1(String sName)
    {   
/* This is actual path which got from inspector
//XCUIElementTypeStaticText[@name="Account Information"]
*/
        String targetCell = "//XCUIElementTypeStaticText[contains(@name,'" + sName + "')]";
        MobileElement cellWithText = driver.findElement(By.xpath(targetCell));
        HashMap<String, String> scrollObject = new HashMap<String, String>();
        scrollObject.put("element", ((RemoteWebElement)cellWithText).getId());
        scrollObject.put("direction", "down");
        scrollObject.put("predicateString", "value == '" + sName + "'");
        scrollObject.put("toVisible", "true");
        driver.executeScript("mobile:scroll", scrollObject);
        try {
            System.out.println("In Try Block "+cellWithText.getText());
            Thread.sleep(10);
            cellWithText.click();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
  1. Он прокручивается дважды
  2. и он не щелкает,

Присоединение снимка экрана объекта DOM.

Пожалуйста, помогите мне enter image description here

1 Ответ

0 голосов
/ 25 марта 2020

Это методы для ваших нужд для iOS и Android:

private JavascriptExecutor js;
private HashMap<String, String> scrollObject = new HashMap<>();

void iosScrollToAnElement(IOSElement el) {
        scrollObject.put("direction", "down");
        scrollObject.put("element", el.getId());
        js.executeScript("mobile: swipe", scrollObject);
}

void androidScrollToAnElementByText(String text) {
        try {
            ((AndroidDriver)driver).findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"" + text + "\").instance(0))");
        } catch (Exception e) {
            throw new NoSuchElementException("No element" + e);
        }
    }

, после этого вам нужно click() для вашего конкретного элемента, который вы ищете. (есть методы только для прокрутки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...