誰かが私のコードに間違っていることについて提案していますか?ここでは、コードがあります:私はテストを実行するとbehatは不可視フィールドと対話できません
echo $this->find("css","#address-container")->getHtml();
$field = $this->find("css","#address-container .region input");
echo $field->isVisible() ? "I can see myself!!!" : "no can not see";
echo $field->getAttribute('type');
$field->setValue("ON");
、これは私が#address-container .region input
が表示されるように期待していた結果
│ <legend>Address</legend>
│ <div class="field city">
│ <label>*City</label>
│ <input class="required city" name="address_add[0][city]" value="" type="text">
│ </div>
│ <div class="field region">
│ <label>*Prov./State</label>
│ <input class="required region" name="address_add[0][region]" value="" type="text">
│ </div>
│ <div class="field country">
│ <label>*Country</label>
│ <input class="required country" name="address_add[0][country]" value="" type="text">
│ </div>
│ no can not seetext
Element is not currently visible and so may not be interacted with
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: host: 'ubuntu', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.15-x86_64-linode81', java.version: '1.8.0_121'
Driver info: driver.version: unknown (WebDriver\Exception\ElementNotVisible)
です。ブラウザに行って手作業で手順を進めると、領域フィールドが表示されます。私がチェックし、他のものです:
- 私は都市や国と地域を交換する場合は、ページ
- には、他の領域の入力フィールドが存在しない、すべてが正常に動作し
- 地域を操作全く遅延javascriptの呼び出しはありません入力フィールド
他に、領域フィールドを非表示にする原因は何ですか?この問題のトラブルシューティングに役立つツールがありますか?私はこのような地域や国のhtmlの位置を入れ替えた場合
UPDATE
は:
│ <div class="field country">
│ <label>*Country</label>
│ <input class="required country" name="address_add[0][country]" value="" type="text">
│ </div>
│ <div class="field region">
│ <label>*Prov./State</label>
│ <input class="required region" name="address_add[0][region]" value="" type="text">
│ </div>
は、次に領域が見えるようになります。しかし、国を探すために私の行動コードを変更すれば、今は見えない国です!
本当のブラウザでは見えない何か違うものを見ていますか?
ブラウザでinspectを使用してこのセレクタを検索し、1つの要素を返すかどうかを確認してください。待ち時間を追加する必要があるかもしれませんが、最初に 'sleep(2);'のようなブラインドウェイトを使用してテストし、条件付き待ちを追加することができます。 #アドレスコンテナフォーム全体のHTMLスニペットを入力してください。 – lauda
ありがとうlauda。私はちょうど私の質問を更新した。地域と国のhtmlノードの順序を逆にすると、領域は表示され、国は表示されません。私のウェブブラウザで人間の目を通して物を見ると、私はそれらが見えるのを見ることができます...おかしい – John
'#address-container input.region'や'#address-container input [name * = region] ' – lauda