【问题标题】:Not able to perform swipe or scroll using JavaScript Executor in IOS WebView无法在 IOS WebView 中使用 JavaScript Executor 执行滑动或滚动
【发布时间】:2017-11-17 01:45:12
【问题描述】:

我们正在尝试自动化我们需要执行滚动操作的场景,但是滑动和 JavaScriptExecutor 不起作用,我们的问题的一点背景,被测应用程序是一个混合应用程序(原生和 webview 都可用)和我们正在使用 IOS_Webkit_Debug_Proxy 来启用 web_view。 (我们没有使用原生元素,因为我们的应用完全建立在 webview 之上)

尝试了几种方法,例如将 web_view 切换到本机,反之亦然,但在这两种情况下,使用 JavaScript Executor 的 driver.swipe 方法或滚动应用程序都不起作用。

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, 
configuration.getProperty(MobileCapabilityType.PLATFORM_NAME));
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, configuration.getProperty(MobileCapabilityType.PLATFORM_VERSION));
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,configuration.getProperty(MobileCapabilityType.DEVICE_NAME));
capabilities.setCapability(MobileCapabilityType.UDID, configuration.getProperty(Constants.UDID));capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT,8000); 
capabilities.setCapability(MobileCapabilityType.APP, System.getProperty("user.dir") + configuration.getProperty(Constants.APP_IOS));    
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.IOS_XCUI_TEST);
capabilities.setCapability(MobileCapabilityType.AUTO_WEBVIEW, true);
capabilities.setCapability("autoAcceptAlerts", true);   
String urlString = new 
StringBuffer(configuration.getProperty(Constants.PROTOCOL)).append("://".append(configuration.getProperty(Constants.HOST_NAME)).append(":").append(configuration.getProperty(Constants.PORT)).append("/wd/hub").toString(); 
driver = new IOSDriver(new URL(urlString), capabilities);
driver.manage().timeouts().implicitlyWait(Constants.TIMEOUT_IN_SECONDS,TimeUnit.SECONDS);'


JavaClient: 4.1.2
Appium: 1.6.4
IOS_Webkit_Debug_Proxy
IOS version: 10.2

x代码:8.3.2 物理设备 如果您需要更多详细信息,请告诉我,并且我们正在进行项目,需要解决方案或解决方法才能开始。

【问题讨论】:

    标签: java selenium-webdriver appium-ios


    【解决方案1】:

    您是否尝试过使用 Java 客户端中的 TouchAction 类。

    这可能会对您有所帮助:

    public void swipeWithTouch(){
    
        TouchAction action = new TouchAction((MobileDriver)driver);
        action.longPress(fromX, fromY).moveTo(toX, toY).release().perform();
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      相关资源
      最近更新 更多