Java 如何";点击";或者使用Browserstack和Selenium轻触移动设备

Java 如何";点击";或者使用Browserstack和Selenium轻触移动设备,java,selenium,selenium-webdriver,browserstack,Java,Selenium,Selenium Webdriver,Browserstack,我有一个使用Browserstack的测试代码,基本上在页面上播放视频 playBackButton = _webDriver.findElement(By.xpath("//*[@aria-label='Start Playback']")) try{ playBackButton.click(); } 它工作正常,除了在移动设备上,它会在日志中记录一次点击,但视频不会启动。也不例外,就是不玩 是否有人可以演示向运行在Browserstack中的移动设备发送点击的工作示例?在

我有一个使用Browserstack的测试代码,基本上在页面上播放视频

playBackButton = _webDriver.findElement(By.xpath("//*[@aria-label='Start Playback']"))
try{
        playBackButton.click();
}
它工作正常,除了在移动设备上,它会在日志中记录一次点击,但视频不会启动。也不例外,就是不玩


是否有人可以演示向运行在Browserstack中的移动设备发送点击的工作示例?

在ios设备上运行测试时,请确保您正在使用以下功能:

 caps.setCapability("nativeWebTap",true);
驱动程序应该是IOSDriver的一个实例

IOSDriver driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);
同样,对于Android,请确保您使用的是AndroidDriver

AndroidDriver<AndroidElement> driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);

您确定移动版本的xpath定位器是相同的吗?是的,我们连接了一个真实的设备,并使用相同的
xpath
找到了相同的按钮。使用JavaScript executor来执行单击event@AnkurSingh我试过了,但结果不一致。问题是我们需要代码与多个玩家一起工作。例如,在VideoJS中,使用JavaScript调度的click事件可以正常工作。但使用JW player时,实际上没有按钮,我们单击了一个div。这同样适用于Selenium的
webdriver。在浏览器中单击()
,但在移动设备中不适用。您可以使用try catch来处理移动版本的单击事件。。它会像elseThanks一样工作!在Browserstack中运行测试时,是否有方法设置不同的WebDriver?是的。您只需要将127.0.0.1 url替换为BrowserStack的中心url。并包括一个名为“realMobile”的特定于BrowserStack的功能:将您的答案标记为认可您的努力没有问题!然而,它并没有完全解决我的问题。首先,因为它依赖于Appium实体,而我只是使用Selenium。其次,这个问题似乎与一般的点击无关,但更具体地说与视频播放有关。目前我发现,即使是执行一个专门调用JW或VidoeJS player的
play()
方法的JS,也不起作用。。。
 caps.setCapability("nativeWebTap",true);
 IOSDriver driver = null;
 try {
     driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);
  } catch (MalformedURLException e) {
     e.printStackTrace();
 }

 driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
 driver.get("http://stackoverflow.com");
 WebElement ele = driver.findElement(By.xpath("(//div[@class='-details'])[1]"));
 ele.click();
 driver.quit();