2017-01-17 8 views
4

は現在、我々のテストは、URL(例。http://foo.bar/whatever)我々はテストを実行しているときに別のIPへfoo.barを解決したいSeleniumドライバでホスト名を別のIPに解決させるには?

で特定のホスト名を持っています。

手動で私たちは、ホストファイルを変更したり、C#コードのこの部分を使用してこれを行うだろう:

var request = (HttpWebRequest)WebRequest.Create("http://ip-of-foobar/whatever"); 
request.Host = "foo.bar"; 

我々は正しいホスト名を持っている必要があります...多分セレンでリクエストヘッダを設定する別の方法は何ですか?

答えて

1

私の知るところでは、ブラウザーを開くサーバーのIPを設定するためのセレンのAPIはありません。 get()は、ドメイン名またはIPアドレスを含むURLを取得します。 C#ライブラリを使用して設定した値を設定することはできません。

あなたがドメイン名をIPアドレスに変更すると、次のように利用可能な2つのオプションがあります

  1. ファイル内のIPアドレスを保管してください。 language librariesを使用してファイルから値を読み取り、variableに設定します。 URLを参照している場所であれば、その変数を使用します。例:driver.get("http://"+variable+"/")ホームページを入手する。
  2. test framework capabilitiesを使用してください。パラメータ化(parametertestng,example)またはdata references。これにより、コード外の値を定義し、コード内の変数名を使用して値を参照することができます。最初のオプションと同じですが、ファイル読み込みアクティビティを避けます。実行中は、値を変更して、どこにでも反映されます。

使用している言語とフレームワークを教えてください。上記のオプションに基づいて正確な解決策を提供するようにしてください。

+0

フィードバックいただきありがとうございます。私がしようとしているのは、urlでip-addressを使用している間に正しいホスト名が要求に渡されていることを確認するか、ホスト名を使用して正しいipに解決させることです。 – Ken

+0

1つのクラスタから別のクラスタに切り替えるには、このシナリオが必要です。つまり、ライブサイトは、テストするホスト名と同じホスト名を持っています。おそらくこれをインフラストラクチャで解決することはできますが、これをSelenium経由で直接行うのはいいでしょう。実際には、特定のホスト名に使用するIPをブラウザに伝えたいだけです。これがセキュリティを考慮して可能かどうかは不明です。 – Ken

+0

私が答えて言ったように、ブラウザがどのIPを使うべきかを知るAPIはありません。あなたがパラメータ化できる唯一の方法は、IP /ホストをコードから離して、すなわち 'driver.get()'メソッド(ファイルに入れます)から変数に置き換えます。変数をIPアドレスに設定することで、必要なIPに切り替えることができます(サーバーのホスト名 - > IPアドレスをファイルにマップできます)。 –

関連する問題