当前位置: 首页 > 面试题库 >

如何在RemoteWebDriver中使用Selenium TouchActions

越风史
2023-03-14
问题内容

我用touchstartand
touchmove事件编写了一些Javascript代码。我想用selenium测试。我刚刚发现了TouchActions类,该类move似乎正是我想要的方法。

我的测试是通过RemoteWebDriver运行的:

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

驱动程序将是a ChromeDriver或最终将是a FirefoxDriver,而不是a AndroidDriver

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

TouchActions builder = new TouchActions(remoteWebDriver);

我收到强制转换错误:

java.lang.ClassCastException:org.openqa.selenium.remote.RemoteWebDriver无法转换为org.openqa.selenium.interactions.HasTouchScreen

有人知道我应该做什么吗?我需要添加一项功能吗?


问题答案:

因此,要做到这一点,首先需要将移动功能添加到驱动程序中(请参阅Mobile
Emulation
):

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()...任何操作。



 类似资料:
  • 问题内容: 我正在尝试在C#中使用Selenium RemoteWebDriver,基本上我要做的就是在javascript完成对DOM的操作 后 以编程方式抓取网页的html (不弹出浏览器窗口。) 首先,我像这样启动selenium-server.jar: C:\ Program Files \ selenium-server > java -jar“ C:\ Program Files \

  • 问题内容: 如何从公司代理后面通过RemoteWebDriver连接到硒网格,例如Br​​owserStack? 被测应用程序在代理之外,可以从BrowserStack免费访问。 问题答案: 我设法根据链接的问题中的可接受答案得到了一些解决方案,如果有人遇到相同问题,这是我的实现: 例 MyHttpClientFactory

  • 如何从公司代理后面通过RemoteWebDriver连接到selenium网格(如BrowserStack)? 被测应用程序位于代理之外,可以从BrowserStack自由访问。 这个使用Selenium RemoteWebDriver隐藏公司代理(Java)stackoverflow的问题问了同样的问题,但我无法按照公认的答案回答。

  • 问题内容: 我试图在一些远程自动化服务(Sauce Labs,Browserstack等)上运行Selenium测试,并遇到通过我的公司防火墙攻击其API的问题。 请注意,我要测试的应用程序 不在 此防火墙后面,可以公开访问。 问题似乎是Selenium的管道将url中的user:key解释为代理凭据,因此它永远不会离开我们的网络。是否有任何特定的技巧来配置它?似乎在后台使用了Apache Htt

  • 我正在尝试在一些远程自动化服务(Sauce Labs、Browserstack等)上运行Selenium测试,并通过我的公司防火墙遇到了影响其API的问题。 请注意,我尝试测试的应用程序不在此防火墙后面,它是可公开访问的。 问题似乎是Selenium的管道将用户:输入url作为代理凭据,所以它永远不会离开我们的网络。是否有任何特定的技巧来配置此功能?它似乎在幕后使用Apache HttpClien

  • 我已经到处找了,但没有找到任何关于如何正确设置代理以在Sauce labs上运行脚本并提取HAR文件的好文档。我在嵌入式模式下使用BMPhttps://github.com/lightbody/browsermob-proxy#using-with-selenium,以及https://wiki.saucelabs.com/display/docs/sauce+connect+proxy。我找到了