2010-12-14 10 views
4

特定のテストケースのための私のHTTPリクエストにヘッダを追加しようとしています。それは私が携帯電話で使用されることを意図したアプリケーションをテストしようとしているので非常に重要です。私は方法addCustomRequestHeader(String arg0, String arg1)について知ることができます。残念ながら、私はそれを正しく使用する方法を知らないようです。how-to addCustomRequestHeader正しく使用する

これは私のテストスイートです:テストケースを通過している

package testscripts; 

import com.thoughtworks.selenium.DefaultSelenium; 
import com.thoughtworks.selenium.SeleneseTestCase; 
import com.thoughtworks.selenium.Selenium; 

import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 

public class TCNewspapers extends SeleneseTestCase { 

    //Local parameters 
    private static final String SELENIUM_SERVER_HOST = "localhost"; 
    private static final int SELENIUM_SERVER_PORT = 4444; 
    private static final String NAVIGATOR = "*firefox"; 
    private String URL = "http://www.marca.com/"; 

    Selenium selenium; 

    @Before 
    public void setUp() throws Exception { 
     super.setUp(); 

     selenium = new DefaultSelenium(SELENIUM_SERVER_HOST, 
       SELENIUM_SERVER_PORT, 
       NAVIGATOR, 
       URL); 

     setUp(URL, NAVIGATOR); 

     //selenium.start(); 
     selenium.start("addCustomRequestHeader=true"); 
     //selenium.start("captureNetworkTraffic=true, addCustomRequestHeader=true"); 
     Thread.sleep(5000); 
     selenium.windowMaximize(); 
    } 

    @Test 
    public void testOpenMarcaMobilePage() { 

     selenium.addCustomRequestHeader("user-agent", "Mozilla/5.0 (iPhone;"); 
     selenium.open(URL); 
     selenium.waitForPageToLoad("300000"); 
     verifyTrue(selenium.isTextPresent("Golf")); 
    } 

    @After 
    public void stopClient() throws Exception { 
     selenium.stop(); 
    } 

} 

、「ゴルフ」をalthoug文字列はページのモバイル版では表示されません。ナビゲータをチェックすると、私はモバイル版ではないことがわかります。

WARNING:

また、私はこの警告になってるのgetString(addCustomRequestHeaderが)悪い結果を見てOK

addCustomRequestHeader方法のドキュメントは言う:

このブラウザが組み込みのSeleniumプロキシを使用するように設定されている場合にのみ機能します

私はそれが問題だと思います。どのように私はこれを行うことができますの任意のアイデア?

答えて

1

Seleniumをプロキシサーバーとして使用していることを確認する必要があります。基本認証をサポートするためにaddCustomRequestHeaderを使用する方法についての記事を書きました。あなたは、関連する部分を(注意私はルビーを使用しますが、それだけで、他の言語にマップ)外挿することができるはずです:注意すべきあなたは非常に多くの必要性

http://mogotest.com/blog/2010/06/23/how-to-perform-basic-auth-in-selenium

一つはありませんがあることです要求ヘッダーを削除する方法。これは常に付加的なものであり、リクエストごとに追加されます。別のヘッダーを使用する必要がある場合は、Seleniumサーバーを再起動する必要があります。

+0

回答ありがとうございます。私がしたことは、自分のFirefoxがSelenium Server(localhost:4444)経由でインターネットに接続するように設定してから、私のオフィスでプロキシ経由でインターネットに接続してから、私のSelenium Serverをオプション-Dhttp.proxyHost = myProxy- Dhttp.proxyPort = 8080。 – Panacea

+0

警告:getString(addCustomRequestHeader)が悪い結果を確認しました。OK – Panacea

+0

警告メッセージに慣れていません。しかし、どのバージョンのSeleniumを実行していますか?私は2.0a5または2.0a6で要求ヘッダーのもののいくつかを修正しました。 – nirvdrum

4

私はあなたとは別の場所から出発しましたが、あなたと同じ結果で終わりました。 msgstr "セレンにリクエストヘッダを追加するにはどうすればいいですか?"元の質問を投稿してからしばらくお待ちしておりますので、これはJavaで回答を探している人のためのものです。ここで私はJAVAであなたのセレンリクエストにリクエストヘッダを追加することを思い付いたいくつかのコードです:

public class MyTestCase extends SeleneseTestCase { 

@Before 
public void setUp() throws Exception { 
    selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost"); 
    selenium.start("addCustomRequestHeaders=true"); 
    selenium.open("/"); 
} 


@Test 
public void testMyTestCase() { 
    selenium.addCustomRequestHeader("HEADER_NAME", "HEADER_VALUE"); 
    //header "HEADER_NAME", with "HEADER_VALUE" is now in your request 
    selenium.click("link=Hello World"); 
} 

}

更新 あなたはまた、 'であなたのセレンサーバを起動する必要がありますが - addCustomRequestHeader '入力変数。例:

%java_home%\bin\java -jar selenium-server-standalone-2.25.0.jar -addCustomRequestHeader 
+0

これは、Selenium RC 2.17a – bakoyaro

関連する問題