問題タブ [webdriver-io]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - webdriverio を使用してログイン ページかどうかを検証する方法
Javascript、webdriverio (v2.1.2) を使用して、内部サイトからデータを抽出しています。内部サイトは SSO 対応なので、別のアプリケーションで認証されている場合は、このアプリケーションにログインする必要はありません (企業のイントラネット アプリケーションでは一般的です)。私は以下を達成する予定です、
- 必要な機能を持つクライアントを作成する
- 必要な URL を渡す
- お楽しみに : ページのタイトルを印刷する
ページに要素が存在するかどうかを確認します。はいの場合、それはログインページです。そうでない場合、それはログインページではありません
};
これが最善の方法ですか?ログインページを検証するためのコードを別の関数に分離しようとしましたが、webdriver のすべてがコールバックの一部として発生し、正しい方法で実行しているかどうかわかりません。 その関数によって返される最終的な値になるコールバックから戻るにはどうすればよいですか?
javascript - Javascript 要素をループし、WebdriverIO を使用してリンクをクリックする
Javascript、webdriverio (v2.1.2) を使用して、内部サイトからデータを抽出しています。だからアイデアは
- 認証する
- 認証されたら、必要な URL を開きます
- 新しいページで、特定のキーワードを持つアンカー タグを検索します
- 見つかったら、アンカータグをクリックします
以下は私が試したもので、うまくいきます(最後の2点)。それを達成するには、Q と async を使用する必要がありました。私はそれを達成するためにQだけを使用したいと思っていました。Qのみを使用してそれを達成する方法について、誰かが私を助けることができますか??
関連する Github の問題リンクhttps://github.com/webdriverio/webdriverio/issues/123
javascript - セレンでphantomjsのログファイルパスを変更するにはどうすればよいですか?
phantomjs を selenium で使用する場合、selenium が phantomjs に渡すデフォルトの --webdriver-logfile パラメータを変更したいと思います。どうすればいいですか?
Selenium ログの対応する行:
coffeescript で phantomjs を起動する:
node.js - Selenium + webdriverio - ページ JS の初期化によって生成された変数を取得する方法は?
私が開発している受け入れテスト スイート (スタックの一番上に mocha、sinon、chai を配置) では、phantomjs にページをロードし、Web で入手可能な例に従ってあらゆる種類の操作を実行できます。
私を逃す唯一のことは、ページの起動中に生成された JS 変数の取得です。変数app
をテストできないのにテストできることを示す完全な例をここに示しますjQuery
。
2 つの唯一の違いはapp
、$(document).ready(function() {... create var app ...})
私が得るエラーはmaximum call stack exceeded
(?!?!?!?)
これが利用可能な場合、アプリのチェックを実行するにはどうすればよいですか? 多分約束を使っている何か?はっきり見えません(**)。
エラースタックは次のとおりです。
テストは次getTitle
のとおりgetTagName
です。失敗します。getElementSize
execute('return jQuery')
execute('return app')
(**) 私はすでにSelenium WebDriver JS - Explicit Waitの指示に従いましたが、エラーはObject #<WebdriverIO> has no method 'wait'
(これは完全に理にかなっています...)
webdriver - webdriverio を使用した Chromedriver - init で未処理のリクエスト
ChromeDriver を実行し、きゅうりのセットアップでテストしようとしています。これは非常に基本的な Google 検索テストですが、テストを実行すると次のように返されます。
私はchromedriverを実行しています:
キュウリから実行されている world.js ファイルは次のとおりです。
chromedriver の代わりにセレン jar を使用してテストを行いましたが、それは機能しますが、最終的には主に CEF クライアントに対してテストを行う必要があり、chromedriver を機能させる必要があります。
node.js - Jenkins Javascript パスの失敗
Jenkins 経由で Mocha + WebDriverIO を実行する小さなテスト フレームワークを構築しています。何らかの理由で、相対パスが期待どおりに表示されません。その結果、fs.js はエラーをスローしています。
エラー:
エラー: ENOENT、そのようなファイルまたはディレクトリはありません 'C:\workspaces\nodejstest\jenkins\JENKINS_HOME\jobs\browse_test\workspace\login.js'
パスは 'C:\workspaces\nodejstest\login.js' (実行されたスクリプトの絶対的な場所) である必要があります。エラー状態のJenkinsワークスペースディレクトリではなく、同じディレクトリからスクリプトを実行しているにもかかわらず、ディレクトリパスが間違っている理由について、誰でも洞察を持っています。cli から実行すると、正常に動作します。変。
テスト スクリプト (run_test.js):
Jenkins を起動します (run.sh):
ジェンキンスの仕事:
selenium - Selenium がキャッチされないエラーでランダムに終了する
mocha、webdriverio、phantomjs を使用しています Selenium がランダムなケースで失敗する理由を見つけようとしています (50% は問題ありませんが、50% は同じコードを使用したさまざまなテストで中断します)。
エラーは
実際、ドライバー情報は EventFiringWebDriver であり、表示されない場合があります。
インターネットで調べても解決策が見つかりません。テストは非同期ですが、例のように 1 対 1 で、総量は約 200 で、タイムアウトは非常に大きくなりますが、問題ありません。
testing - Jasmine テストは、webdriver.io の下で成功/失敗レポートを作成しません
次のように webdriver.io の下で次の jasmine テストをnode path/to/test/script.js
実行します。 「describe」機能は引き続き実行されますが、そうではありません)。
しかし、jasmine は「it」テストと「expect」アサーションのレポート結果を提供しません。ジャスミンのコンソールには何もありません。「合格/不合格」の結果などはありません。
ジャスミンにレポートを作成してもらう方法、および特に。ジェンキンスが読めるもの?
問題のテスト スクリプト:
注: ここに相互投稿: https://groups.google.com/forum/#!topic/webdriverio/-EOrQ003B9I
javascript - JavaScript - WebDriverIO - アップロードする相対ファイル パスでファイルを選択する方法は?
を使用して現在のプロジェクトのテストを書いていますCucumberJS
。テストは を使用してテストされSelenium Server + WebDriverIO
ます。今、サーバーにアップロードする画像ファイルを選択する必要があるテストに行き詰まっています。私はこの WebDriverIO の関数を使用しています:
root
問題は、すべてのコンピューターでテストを実行できるようにするため、サーバーのフォルダーにいくつかのテスト画像ファイルを事前にアップロードしたことです。このフォルダーが他のコンピューターのどこに置かれるのか分からないので、相対ファイル パスを関数root
に送信する方法が必要だと思います。chooseFile
私はこの方法を試しましたが、うまくいきませんでした(これは、以下のファイルのコードですuploadImg.coffee
)
これは私のプロジェクトフォルダー構造です(私は使用していますMeteorJS
):