IDを使用してCodeceptionでIFrameを切り替える

eknej

IDを使用してCodeceptionを使用してIFrameに切り替えるにはどうすればよいですか?実際には、IFrameの名前は使用できますが、IDは使用できません-> Codeception SwitchToIFrame

IFrameの例:

<iframe id="iframeToolbar" src="link" frameborder="0" style="position: fixed; left: 0px; top: 0px; z-index: 998; width: 940px;" scrolling="no" width="100px" height="100%"></iframe>

コードセプションの例:

<?php
# switch to iframe
$I->switchToIFrame("another_frame");
# switch to parent page
$I->switchToIFrame();

それはおそらくCodeception <-> Facebook Webdriver接続の問題ですか?

編集:Codeceptionを再インストールし、クイックステップガイドに従いました。結果-問題は同じです:CodeceptionとFacebookWebdriverは一緒に動作することを望んでいません。私のコード受容コード

accept.suite.yml:

actor: AcceptanceTester
modules:
  enabled:
    - \Helper\Acceptance
    - WebDriver:
            url: https://xxxxxxxxxxxxxx.com
            browser: chrome
            window_size: maximize
            clear_cookies: true

codeception.yml:

paths:
tests: tests
output: tests/_output
data: tests/_data
support: tests/_support
envs: tests/_envs
actor_suffix: Tester
extensions:
enabled:
    - Codeception\Extension\RunFailed
settings:
colors: true
  • OS:Windows 10
  • PHP:7.1.7
  • PHPUnit:6.4.4
  • Seleniumサーバー:3.8.1
  • コードセプション:2.3.7
  • Chrome:63.0.3239.108
アーロン・ウォレンティン

この問題が発生しました。GooglereCaptchaを含むページをテストしています... reCaptchaは独自のiframe内にあり、そのiframeはサードパーティのコードによって生成されるため、名前属性を制御できません(少なくともその場合)最初に生成された)。

私がやったことは、他のものに基づいてiframeを見つけることができるjavascriptスニペットを実行し、それにIDを与えて、CodeceptionWebdriverがそれに切り替えることができるようにすることでした。

    public function _clickOnCaptcha(AcceptanceTester $I)
{
    // give the recaptcha iframe a name so codeception webdriver can switch to it
    $recaptcha_frame_name = 'recaptcha-frame';
    $I->executeJS("$('.g-recaptcha iframe').attr('name', '$recaptcha_frame_name')");
    $I->switchToIFrame($recaptcha_frame_name);
    $I->see('not a robot');
    $I->seeElement('.rc-anchor');
    $I->click(['id' => 'recaptcha-anchor']);
    $I->switchToIFrame(); // switch back to main window
}

私は含まれている要素を制御できたので、この場合、クラスを持つ要素内に含まれていg-recaptchaます...したがって、jqueryを使用してその要素内のiframeを検索し$('.g-recaptcha iframe')、それにname属性を付けます:.attr('name', '$recaptcha_frame_name')

次に、Codeceptionを使用してそれに切り替え、キャプチャチェックボックスをクリックします。 $I->switchToIFrame($recaptcha_frame_name); $I->click(['id' => 'recaptcha-anchor']);

次に、完了したら、メインフレームに切り替えて、フォームを送信できるようにします。 $I->switchToIFrame(); // switch back to main window

注意:ここで指定されているように、テスト環境でreCaptchaテストキーを使用しているため、実際にキャプチャの解決を要求されることはありません。

https://developers.google.com/recaptcha/docs/faq

次のテストキーを使用すると、常にCAPTCHAが取得されず、すべての検証リクエストに合格します。

サイトキー:6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhIシークレットキー:6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe reCAPTCHAウィジェットは、テスト目的のみであることを示す警告メッセージを表示します。これらのキーを本番トラフィックに使用しないでください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

IDを使用してiframeに切り替える方法

分類Dev

SeleniumとPythonを使用してiframeを切り替える方法は?

分類Dev

Webdriverを使用してiframeに切り替えることができません

分類Dev

Pythonを使用してiframe内でSeleniumフォーカスを切り替える方法

分類Dev

セレンvbaを使用してiframeを切り替えるにはどうすればよいですか?

分類Dev

JavaでSelenium WebDriverを使用してタブを切り替える

分類Dev

SeleniumとPythonを使用してiframeに切り替えるにはどうすればよいですか?

分類Dev

JavaScriptでID名を切り替える

分類Dev

Jqueryを使用せずにJavaScriptでaddEventListenerを使用して画像を切り替える

分類Dev

メディアクエリを使用してsideBar(iFrame)を切り替えます

分類Dev

Javaコードを使用してSeleniumWebdriverでiFrame間の切り替えを迅速に行う方法は?

分類Dev

SeleniumでLinktextを使用してブラウザーを切り替える

分類Dev

Javaを使用してSelenium WebDriverでフレームを切り替える方法

分類Dev

Google認証を使用してMicrosoftMobileServiceClientでユーザーを切り替える方法

分類Dev

Djangoを使用してPythonでHTMLページを切り替える方法

分類Dev

jQueryを使用して<div>を切り替えることができません

分類Dev

WebApplicationFactoryを使用してTestServerでサービスを切り替える方法は?

分類Dev

Pythonを使用してSeleniumでiframeに切り替えてフレームを閉じることができません

分類Dev

ボタンで iframe を切り替えようとしています

分類Dev

CMakeを使用してGCCとClang / LLVMを切り替える

分類Dev

JQueryを使用してCSSを切り替える方法は?

分類Dev

jqueryを使用してFadeInを切り替える方法

分類Dev

Jqueryを使用して要素を切り替える方法

分類Dev

BootstrapToggleを使用して別のBootstrapToggleを切り替える方法

分類Dev

calc()を使用して色の値を切り替える方法は?

分類Dev

変数を使用して入力配列を切り替える

分類Dev

jQueryを使用して定期的に画像を切り替える

分類Dev

Javascriptを使用して2つのdiv要素を切り替える

分類Dev

jqueryを使用してJavaScript関数を切り替える方法

Related 関連記事

  1. 1

    IDを使用してiframeに切り替える方法

  2. 2

    SeleniumとPythonを使用してiframeを切り替える方法は?

  3. 3

    Webdriverを使用してiframeに切り替えることができません

  4. 4

    Pythonを使用してiframe内でSeleniumフォーカスを切り替える方法

  5. 5

    セレンvbaを使用してiframeを切り替えるにはどうすればよいですか?

  6. 6

    JavaでSelenium WebDriverを使用してタブを切り替える

  7. 7

    SeleniumとPythonを使用してiframeに切り替えるにはどうすればよいですか?

  8. 8

    JavaScriptでID名を切り替える

  9. 9

    Jqueryを使用せずにJavaScriptでaddEventListenerを使用して画像を切り替える

  10. 10

    メディアクエリを使用してsideBar(iFrame)を切り替えます

  11. 11

    Javaコードを使用してSeleniumWebdriverでiFrame間の切り替えを迅速に行う方法は?

  12. 12

    SeleniumでLinktextを使用してブラウザーを切り替える

  13. 13

    Javaを使用してSelenium WebDriverでフレームを切り替える方法

  14. 14

    Google認証を使用してMicrosoftMobileServiceClientでユーザーを切り替える方法

  15. 15

    Djangoを使用してPythonでHTMLページを切り替える方法

  16. 16

    jQueryを使用して<div>を切り替えることができません

  17. 17

    WebApplicationFactoryを使用してTestServerでサービスを切り替える方法は?

  18. 18

    Pythonを使用してSeleniumでiframeに切り替えてフレームを閉じることができません

  19. 19

    ボタンで iframe を切り替えようとしています

  20. 20

    CMakeを使用してGCCとClang / LLVMを切り替える

  21. 21

    JQueryを使用してCSSを切り替える方法は?

  22. 22

    jqueryを使用してFadeInを切り替える方法

  23. 23

    Jqueryを使用して要素を切り替える方法

  24. 24

    BootstrapToggleを使用して別のBootstrapToggleを切り替える方法

  25. 25

    calc()を使用して色の値を切り替える方法は?

  26. 26

    変数を使用して入力配列を切り替える

  27. 27

    jQueryを使用して定期的に画像を切り替える

  28. 28

    Javascriptを使用して2つのdiv要素を切り替える

  29. 29

    jqueryを使用してJavaScript関数を切り替える方法

ホットタグ

アーカイブ