我正在努力生活BDD的方式.我正在使用黄瓜(含硒),恰巧在我的应用程序中使用Twitter Bootstrap模式.
在运行Cucumber测试时,我得到了一个“Selenium :: WebDriver :: Error :: MoveTargetOutOfBoundsError”错误.经过多次搜索,调试和一般绝望之后,我得出结论,它与在Bootstrap模式中使用“fade”参数有关.如果我使用“fade”,会抛出错误:
<div class="modal hide fade" id="info-share-edit-modal" style="display: none;"> . . . </div>
如果我删除“褪色”,那么硒是充满幸福,我的测试清楚:
<div class="modal hide" id="info-share-edit-modal" style="display: none;"> . . . </div>
所以,我现在正在从我的各种模式中消除“褪色”.但是,这让我很伤心,因为我喜欢褪色效果.
有没有人遇到使用Selenium淡化Bootstrap模式的问题?如果是这样,有没有一些聪明的方式让两个人一起工作很好?
顺便说一下(不确定是否重要),我是Rails 3.2.3,Firefox 13.0.1和Ubuntu 12.04LTS.
解决方法
我做了一个快速测试,插入一个WebDriverWait,看看模态的不透明度.似乎工作,但时间会告诉(至少对我来说)这是一个间歇性的问题.这是我在Java中的实现.
//Ensure the modal is done animating new WebDriverWait(driver,5).until( new ExpectedCondition<Boolean>() { @Override public Boolean apply(WebDriver webDriver) { return webDriver.findElement(By.id("videoModal")).getCssValue("opacity").equals("1"); } } );