自動テストのインタビュー--seleniumの基本
目的:セレン自動テストツールの位置に親しみを求める人々を調査するために、
1.どのように要素があるかどうかを判断するには?
裁判官の要素が存在し、異なるがあるかどうか、これは要素が単に存在していないかどうかを決定することがある場合に、スローされますことを意味してNoSuchElementExceptionを
キャッチあれば、あなたは、トライキャッチを使用することができますはNoSuchElementExceptionがfalseを返します。この関数は、通常isElementPresentは、プロジェクト内のメソッドをパッケージ化します。
2.どのように要素があるかどうかを判断するには?
要素があるかどうかを決定する二つのケースがあり、一つは、彼らがいない、天然に存在しない要素であり、別のそのような要素であるが、状態が隠されています
表示されたかどうかを再び決定がある場合、最初のノーリターン偽存在する場合、存在するか否かを決定することによって。
隠したり、表示中3.seleniumかどうか=要素のどれもを対象とすることはできませんか?
、をクリックし、あなたはJS dispalay =なし属性を削除使用することができません。
操作要素の成功率を確保する方法4.セレン?それはクリック可能です、私は特定の要素をクリックしたことを確実にする方法ですか?
操作の前に、それによって成功率を向上させる、要素が要素に見出されることを保証するように、findメソッドをカプセル化することによって達成1 waitforEmelentPresent
なクリックなどの操作する要素、前2は、要素がある場合に表示(非表示でない)、あなたが要素にスクロールする必要があり、その後、操作をクリックしていない。なぜスクロールを使うのか?ページが完全に表示されていない場合ので、要素、それはそれの後にドロップダウンに表示されるのであれば、唯一のクリックする最初の要素をスクロールすることができ、それ以外の場合は、操作をクリックしていません
1
2
3
|
JavascriptExecutor js=(JavascriptExecutor)driver;
// roll down and keep the element to the center of browser
js.executeScript(
"arguments[0].scrollIntoViewIfNeeded(true);"
, download);
|
3.操作がページ要素を決定した後のサイクルが発生し、パッケージexpectedConditionsの決意方法で、さまざまな方法で配置します。
4.開発者はこれに一意の名前、IDとを追加するために、このようなページ要素として習慣の開発を標準化します。
5.どのように動的にロードされたページの要素を見つけるには?
その後、動的イベントトリガ、findElemnt
メニューは動的である場合は、(達成JS)を見つける必要があります
6.どの要素が動的属性を見つけるには?
特性の動的変化がプロパティ値の要素が固定されていないことを意味し、それだけ相対位置を位置決めすることができます
そのようなシャフトは、親/以下、兄弟/ precent-兄弟などによるなどのXPath
また、あなたはfindbyelementsを横断しようとすることができます
7.リンク、ページを待つかどうかをセレンをクリックした後に自動的にロードされていますか?
しません。ページがリソースを要求されたときに、セレンはページを再度読み込み完了していないときに時々、この要素が存在しない場合は、偽陽性となります。だから、最初に私たちは、セレンは、このページをロードされているかどうかを判断するために検討すべきです。第二に、その後、関数によって要素を探します。
8.時間はデータの検証を行うためのデータベースを接続する必要があるかどうかをテスト自動化されましたか?
一般的に図1に示すように、必須ではないUIオートメーション(めったに必要とされない); 2、テストインタフェースが必要であろう:データベースレベルのデータを検証するために、より容易にデータ処理システムを確認することができ正しいです。
9.それぞれ、標的にいくつかの共通の要素がありますか?どちらあなたが最も好きです、なぜ?
8種類:ID、名前、クラス名、タグ名、リンクテキスト、部分的なリンクテキスト、XPathの一CSSセレクタ優先?回答:
私は、XPath(またはCssSelector)多くの場合、プロパティのHTMLタグが標準化されていないので、唯一のために行くことができる単一の属性のXPathを使用することができ、この時点でユニークな位置決め要素を達成するために再見つけることができない最も一般的に使用されています
idがユニークですが、ほとんどの開発者はIDを設定していないので、実際には最速のポジショニングは、IDです。
10.どのようにセレンスクリプトの自動化の効率を向上させるには?
SLEEPを使用せずに、できるだけ多くのテスト例1.最適化、ImplicitlyWaitを減らします
2.マルチユースWebDriverWait / FluentWait中のセレン、その待ち時間を最適化することができます
3.私たちがテストしたいページを開き、このようなサンシブ介するなど、不要なステップを、削減、そして我々は、不要な動作を削減する、Webサイトから直接開くことができます。
ロードされたコンテンツは、我々のテストには影響しない場合4.割り込みページのロードは、あまりにも多くのページロードされたコンテンツならば、我々は、遅いロードするための理由を見ることができ、我々は、ページのロードを中断タイムアウトを設定します。
5.良好なパフォーマンスコンピュータ
11.ユースケースは、多くの場合、不安定な動作時に、つまり、この時点で、次の時間が渡すことができないだろう、とどのようにユースケースの安定性を改善するために?
5、データへの干渉を引き起こし、テスト環境を使用して同時にテストの他のタイプを避けよう。
12.あなたの自動化された実行戦略はどのようなものは、ユースケースですか?
1.自動テストをモニターするために使用されます。ジェンキンスに統合され、定期的に実行するようにスケジュールされたタスクを作成します。
2.一部のユースケースは、オンライン製品の前に返す必要があります。トリガの実行を開発する作業に構築するためにバインドされジェンキンスタスク;
3.一部の患者は、多くの場合、使用する必要はありません。あなたがすることができ、人工構造物を実行する必要がある場合ジェンキンスは、タスクを作成します。
13.継続的インテグレーションとは何ですか?
トランクに統合頻繁コード、プロジェクトの持続可能性の枠組み迅速トランク枝からかなりのずれを防止エラーを見つけることができるようにするために、
原則14.webdriverクライアントは何ですか?
セレン開始した後、ドライバは、クライアントとブラウザとの通信は、クライアントが合意によるとwebdriverをドライバーに要求を送信し、サーバを務めました。ドライバ解決要求、及びブラウザ上の対応する動作を実行し、クライアントに実行結果を返します。
15.webdriverプロトコルは何ですか?
ワイヤプロトコル
16.際にwebdriverをプロトコルを使用ブラウザを起動しますか?
HTTP
17. POモードは何ですか、ページファクトリは何ですか?
POモードは、定義により、ページオブジェクトモデルの略称で、デザインパターンで、各ページ上のオブジェクトのページとして、ページ層が配置要素法や操作のページ方法を記述し、実際のページを達成するとWebページのスクリプトがアップし、地図対応。これは、保守が容易なフレームワークをテストします。たとえば、ランディングページには、使用POモードの後に、クラスは、ユーザー名の入力ボックス、パスワード入力ボックス、ログインボタンを定義webElenent、クラスLoginPageを作成します。例で記述された方法を操作するページ層の呼び出し、からユースケース層を、このモデル要素の分離を配置するスクリプトを使って行うことができます。したがって、この設計思想は、POモードです。POモードでPageFactoryは、オブジェクトライブラリを初期化し、ページクラスを達成するために、各POモードを初期化するために使用されます。
ドロップダウンボックスの値= XXのオプションを選択する方法18?
クラス内で提供される方法の1.select:selectByValue(「XXX」)
構文も2.xpathに配置することができます
19.どのように位置決め要素内の要素を強調しますか?
背景要素の位置を追加するには、要素のプロパティをリセットし、ボーダー
20.getとは違いを投稿しますか?
図1に示すように、GET要求:要求されたデータは、URLに付加され、URLを、接続パラメータ及び複数の分割データを送信?。
POSTリクエスト:データパケットを要求しますPOSTリクエストはHTTP要求パケットのボディに配置されます。
図2に示すように、送信データのサイズ
GET要求を使用しては、送信データは、URLの長さによって制限されます。
POSTの場合、理論的には、それが限定されるものではなく
、セキュリティを3。セキュリティは、GET、POSTよりも高く、
その後の要約に続いて最初のポイント、.....