如何将Selenium TouchActions与RemoteWebDriver一起使用



我用touchstarttouchmove事件编写了一些Javascript代码。我想用硒测试它。我刚刚发现了带有move方法的TouchActions类,这似乎正是我想要的。

我的测试是使用远程Web驱动程序运行的:

RemoteWebDriver remoteWebDriver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

司机将是一个ChromeDriver或最终是一个FirefoxDriver,而不是一个AndroidDriver

当我尝试使用以下方法初始化操作时:

TouchActions builder = new TouchActions(remoteWebDriver);

我收到一个转换错误:

java.lang.ClassCastException: org.openqa.selenium.remote.RemoteWebDriver 不能强制转换为 org.openqa.selenium.interactions.HasTouchScreen

有人知道我应该做什么吗?是否需要添加任何功能?

因此,为了能够做到这一点,需要首先将移动功能添加到驱动程序(请参阅移动仿真(:

Map<String, String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName", "Galaxy S5"); // Choose a device available in your version of chromimum
Map<String, Object> options = new HashMap<>();
options.put("mobileEmulation", mobileEmulation);
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
RemoteWebDriver remoteWebDriver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

然后,在您需要触摸动作的那一刻,您需要"增强"驱动程序,以便能够投射它:

TouchActions builder = new TouchActions(new Augmenter().augment(remoteWebDriver));

然后,从该构建器中,您可以执行builder.down(), move(), scroll(), up()...所需的任何操作。

相关内容

  • 没有找到相关文章

最新更新