使用Selenium

时间:2016-05-25 18:21:07

标签: html css selenium cucumber

我在浏览器中使用Selenium并通过无头ruby gem将其与xvfb一起使用。当我在浏览器中运行测试时,测试通过。当我使用HEADLESS运行相同的测试时,它在此时尝试选择复选框元素时失败:

<div id="edit-field-industry-und" class="form-checkboxes">
    <li id="50" class="half selected">
        <div class="form-item form-type-checkbox form-item-field-industry-und-50">
            <input id="edit-field-industry-und-50" class="form-checkbox" type="checkbox" checked="checked" value="50" name="field_industry[und][50]">
            <label class="option" for="edit-field-industry-und-50">Aerospace</label>
        </div>
    </li>
</div>

注意: HTML中的输入已隐藏!!

错误: 元素不可点击(849.433349609375,21)。其他元素将收到点击:(Selenium :: WebDriver :: Error :: UnknownError)

不确定为什么设计师会这样做(A Drupal网站顺便说一句),但我怀疑这个复选框元素是否包含在 div 中作为 li (列表元素)。

我的问题是为什么我能够点击浏览器中的按钮,但不能在缓冲区中?另外,是否有办法解决检查css文件中隐藏的对象的问题?

2 个答案:

答案 0 :(得分:0)

您是否尝试过PhantomJS(http://phantomjs.org/)进行无头测试?它与Selenium完美配合。您也可以使用JavascriptExecutor单击隐藏元素。

答案 1 :(得分:0)

大多数情况下,当您发生这种情况时,您在xvfb中运行不同的浏览器分辨率,这会导致css的行为不同。您可以使用browser.window.size进行验证,并通过browser.window.resize_to 1600, 1200browser.window.maximize

解决问题