我正在用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