我在 iPhone 上运行远程 Web 驱动程序时遇到了类似的问题。似乎远程 Web 驱动程序不支持 jQuery 触摸事件,这意味着 JQuery 正在寻找给定数量的触摸事件,例如。点击、触摸启动、滑动等,但当您调用 click 时,Selenium 不会触发其中任何一个。我求助于使用以下Javascript:
window.jQuery(document.elementFromPoint(198,216)).trigger('touchstart');
您可以使用driver.findElement(By.id(id)).getLocation()
来获取要单击的元素的位置。
然而,当我执行 Javascript 时,我确实遇到了一个异常:
org.openqa.selenium.WebDriverException:'undefined' 不是对象命令持续时间或超时:530 毫秒构建信息:版本:'2.2.1',修订:'16551',时间:'2012-04-11 21:42 :35' 系统信息:os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.7.5',java.version:'1.6.0_37' 驱动程序信息:driver.version: RemoteWebDriver 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在 java.lang.reflect。 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java: 上的 Constructor.newInstance(Constructor.java:513)175) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:459) 在 org.openqa.selenium.remote.RemoteWebDriver 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:128) .executeScript(RemoteWebDriver.java:366) 在 com.alea.qa.sample.CustomTouchAction.executeScript(CustomTouchAction.java:108) 在 com.alea.qa.sample.CustomTouchAction.Touchstart(CustomTouchAction.java:76) 在 com。 alea.qa.sample.anotherRun.main(anotherRun.java:34) 原因:org.openqa.selenium.remote.ErrorHandler$UnknownServerException:'undefined' 不是对象 构建信息:版本:'2.2.1',修订版: '16551', 时间: '2012-04-11 21:42:35' 系统信息: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.7.5', java.version: '1.6.0_37' 驱动程序信息:驱动程序版本:未知
但它仍然设法单击该元素。