我正在用behat写我的测试,当我尝试在引导模式内的输入上调用fillField时,我正面临一个问题。 当我在此输入硒发送fillField抛出异常的说法:Behat/Mink/Selenium2元素不可见
Element is not currently visible and so may not be interacted with
我创建了一个硒(硒通过IDE)测试手动和同一领域称为类型,它工作得很好。
$page = $this->getSession()->getPage()
$page->fillField("id_item", $value);
$value
是我测试的一个参数。我试图调用一个函数来等待几秒钟,但它没有奏效。
UPDATE:
场景:
Scenario: Realizar Pedido de Compra
Given I am on "/"
When I fill the form with "{\"id\": 1, \"items\":[{\"id_item\": 1}]}"
Then I should see "Ok"
我FeatureContext:
/**
* @When I fill the form with :arg1
*/
public function iFillForm($json) {
$formHelper = FormHelper::getInstance($this->getSession());
$formHelper->fill($json);
}
在我的课堂表单助手:
public function fill($json) {
$handler = new SelectorsHandler();
$handler->registerSelector("css", new CssSelector());
$fileJson = json_decode($json, true);
$page = $this->session->getPage();
foreach ($json as $key => $value) {
if (is_array($value)) {
$addSubGrid = $page->find("css", "#btn-plus-" . $key);
if ($addSubGrid != null) {
$subGrid = $page->find("css", "#" . $key);
$formId = $subGrid->getAttribute("data-form");
$ok = $page->find("css", "#$formId .btn-ok");
foreach ($value as $formItem) {
$itemFilled = array();
$addSubGrid->click();
$this->session->wait(
1000, "$('#modal-$formId').is(':visible')"
);
$this->fillForm($page, array("form-item" => $formItem), $itemFilled, false);
$ok->press();
}
}
} else {
$page->fillField($key, $value);
}
}
$addSubGrid
var是显示模态的元素。当我执行测试时,它会打开模式,但是当它进入$page->fillField($key, $value)
时不起作用。
UPDATE 我发现我试图填充禁用的字段。我已经启用它,现在的问题是它不会填充模态内的字段,只是外部的字段。
显示场景代码? – 2014-10-07 15:33:26
嘿。我已经添加了场景和运行它的代码 – Augusto 2014-10-07 16:51:00
@ThiagoFrança我使用Behat中的一个(我已经关注了他们的文档) @IanBytchek在使用'$ addSubGrid->打开模式后'fillField'出现错误,点击()' – Augusto 2014-10-07 17:02:06