我在浏览器中使用 Selenium,并通过 headless 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)
不确定设计者为什么这样做(顺便说一句,一个 Drupal 站点),但我怀疑复选框元素作为 li 包装在 div 中(列表元素)。
我的问题是为什么我可以点击浏览器中的按钮,但不能点击缓冲区中的按钮?另外,是否可以解决检查 css 文件中不可见的对象的问题?
最佳答案
您是否尝试过使用 PhantomJS ( http://phantomjs.org/) 进行 headless 测试?它与 Selenium 配合得很好。您也可以使用 JavascriptExecutor 来点击隐藏的元素。
关于html - 在浏览器中与在缓冲区中使用 Selenium 进行 headless 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37444887/