0

Codeceptionでは、fillFieldは私が持っている場合は正常に機能します <input type="text" name="email">が、機能しない場合は機能しません<input type="email" name="email">

次のコードで試しました

$I->fillField('input[name=email]', 'user@domain.com');

また と$I->fillField('email', 'user@domain.com'); しかし、それは動作しません。次のエラーが表示されます。

ElementNotVisibleException: 要素は現在表示されていません

4

2 に答える 2

0

私は実際に答えを得ました.executeInSeleniumを実行せずにXPATHで任意のフォーム要素をターゲットにできるようになりました.

したがって、chrome / firefox では、dom を検査し、右クリックして xpath をコピーします。

例として:
$I->fillField('//*[@id="register-form"]/fieldset/section[3]/div/div/label/input', 'user@domain');

また、他のフォーム要素でもうまく機能します

于 2014-09-09T23:23:01.800 に答える
0

私はまだ電子メール フィールドでテストしたことがありません。うまくいかない場合は、次のようないくつかの回避策を選択できます。

(1)JSの利用

$I->executeJS('window.document.getElementsByName('email')[0].value='###value###'');

(2) 低レベルの webdriver コードの使用: -

$I->executeInSelenium(function (\Webdriver $webdriver) {
    $webdriver->findElement('###XPATH###')->sendKeys(###value###);
});

繰り返しになりますが、Codeception 固有の問題が発生した場合は、ここで報告して ください。

お役に立てば幸いです。

于 2014-09-09T14:26:38.510 に答える