Я использую следующий код, чтобы попытаться смахнуть влево на экране iPhone (и Android, но сейчас он сфокусирован на iOS), в частности приложение, но я не могу получить телефон провести пальцем влево.
Назначение кода:
Предполагается, что приведенный ниже код смахивает экран влево, когда приложение открыто, и делает снимок экрана после каждого пролистывания.
Что на самом деле происходит:
Экран вообще не взаимодействует и постоянно зависает.
Если кто-то здесь может прийти к выводу, что приведенный ниже код работает на их, то мне, вероятно, придется попробовать другой файл .ipa.
Я получил следующий код из GIST
Что я пробовал:
Я пытался сменить телефон и операционную систему
caps.setCapability («устройство», «iPhone 8 Plus»); caps.setCapability ("os_version", "11");
Не повезло.
Я также попытался изменить координаты X и Y, чтобы посмотреть, может ли это решить проблему, но независимо от того, изменились ли X и Y, экран не дал результатов.
Я подозреваю, что я не использую правильный импорт. С кодом ниже, следующие импорты не используются. Скорее всего, потому что код из GIST может быть устаревшим?
import java.util.List;
import java.util.Set;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;
import io.appium.java_client.MobileBy;
import static java.time.Duration.ofSeconds;
Для получения дополнительной информации об этом проекте вы можете сослаться на этот вопрос, который я задал, который отображает весь код, с которым я сейчас работаю
Предыдущий вопрос
import java.io.File;
import java.net.URL;
import java.time.Duration;
import java.util.List;
import java.net.MalformedURLException;
import java.util.Set;
import io.appium.java_client.TouchAction;
import io.appium.java_client.touch.WaitOptions;
import io.appium.java_client.touch.offset.PointOption;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import io.appium.java_client.MobileBy;
import io.appium.java_client.ios.IOSDriver;
import io.appium.java_client.ios.IOSElement;
import static java.time.Duration.ofSeconds;
public class BrowserStackIOS {
public static void main(String args[]) throws MalformedURLException, InterruptedException {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("device", "iPhone 6S");
caps.setCapability("os_version", "12");
caps.setCapability("project", "My First Project");
caps.setCapability("build", "My First Build");
caps.setCapability("name", "");
caps.setCapability("app", "");
IOSDriver<IOSElement> driver = new IOSDriver<IOSElement>(new URL("http://"+userName+":"+accessKey+"@hub-cloud.browserstack.com/wd/hub"), caps);
driver.getContextHandles();
Thread.sleep(5000);
take_screenshot(driver);
// First Swipe
TouchAction action = new TouchAction(driver);
action.press(PointOption.point(197,619))
.waitAction(new WaitOptions().withDuration(Duration.ofMillis(600))) //you can change wait durations as per your requirement
.moveTo(PointOption.point(209, 392))
.release()
.perform();
Thread.sleep(5000);
take_screenshot(driver);
// Second Swipe
action.press(PointOption.point(197,619))
.waitAction(new WaitOptions().withDuration(Duration.ofMillis(600))) //you can change wait durations as per your requirement
.moveTo(PointOption.point(209, 392))
.release()
.perform();
Thread.sleep(5000);
take_screenshot(driver);
// Third Swipe
action.press(PointOption.point(197,619))
.waitAction(new WaitOptions().withDuration(Duration.ofMillis(600))) //you can change wait durations as per your requirement
.moveTo(PointOption.point(209, 392))
.release()
.perform();
Thread.sleep(5000);
take_screenshot(driver);
//Test Ends
driver.getContextHandles();
driver.quit();
}