我正在使用英特尔的html5 app development framework。特别是,我正在使用their carousel plugin。但我怀疑webdriver的知识在这里更有用。
他们的旋转木马的工作方式是页面在div内相邻浮动,div的宽度有限且隐藏溢出。您只能通过div“viewport”一次看到其中一个页面。
当你触摸移动到下一个div时,它会应用css变换来动画滑动页面div过去。这很好用。但是webdriver在动画div中的元素有问题。
当您在第一页时,selenium会报告显示的所有元素(在两个页面上),即使其中一半是隐藏的。转换到第二页后,selenium将所有元素(在两个页面上)报告为未显示。
我将它追溯到这个应用于动画div的css属性:
-webkit-transform: translate3d(-1024px, 0px, 0);
当应用这个时,selenium认为这个元素是不可见的。当我使用Chrome开发者工具删除它时,它认为它们都是可见的。
您可以通过两种方式帮助我:
答案 0 :(得分:1)
通过解决硒中的错误,解决了这个问题。
new Actions(driver).MoveToElement(element).Click().Perform();
Selenium可以使用此代码点击链接。现在我只需要尝试使用一个最小的例子作为bug报告给硒的维护者......很棘手。
答案 1 :(得分:0)
我发现旋转木马的调整似乎有效,但它可能会以某种我未曾预料到的方式搞乱这种行为。我在moveCSS3中替换了这一行
el.style[$.feat.cssPrefix+"Transform"] = "translate" + translateOpen + distanceToMove.x + "px," + distanceToMove.y + "px" + translateClose;
与
el.style["margin-left"] = distanceToMove.x + "px";
el.style["margin-top"] = distanceToMove.y + "px";
似乎有用。
欢迎其他答案。这是我应该向硒报告的错误吗?