我正在使用英特尔的html5 应用程序开发框架。特别是,我正在使用他们的轮播插件。但我怀疑 webdriver 的知识在这里更有用。
他们的轮播的工作方式是页面在一个 div 中彼此相邻浮动,该 div 具有有限的宽度并隐藏了溢出。通过 div“视口”一次只能看到一个页面。
当您触摸以移动到下一个 div 时,它会应用 css 转换来动画滑动页面 div 过去。这工作正常。但是 webdriver 对动画 div 中的元素有问题。
当您在第一页上时,selenium 报告所有元素(在两个页面上)都显示为显示,即使其中一半是隐藏的。切换到第二页后,selenium 会将所有元素(在两个页面上)报告为未显示。
我将其追踪到这个应用于动画 div 的 css 属性:
-webkit-transform: translate3d(-1024px, 0px, 0);
当应用这个时,selenium 认为这个元素是不可见的。当我使用 Chrome 开发者工具删除它时,它认为它们都是可见的。
您可以通过两种方式帮助我:
- 我可以让硒正确报告这些元素的可见性吗?也许通过调整旋转木马的工作方式?(它是开源的)。
- 我可以告诉 selenium 无论如何都单击该元素,即使它“不可见”?