![](/img/trans.png)
[英]How-to configure Spring 4.0.5 to use an @ExceptionHandler instead of an ExceptionResolver?
[英]how-to use addCustomRequestHeader properly
我正在嘗試將標頭添加到我的特定測試用例的HTTP
請求中。 這非常重要,因為我正在嘗試測試一個用於移動電話的應用程序。 我設法找到addCustomRequestHeader(String arg0, String arg1)
方法addCustomRequestHeader(String arg0, String arg1)
。 不幸的是,我似乎不知道如何正確使用它。
這是我的測試套件:
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();
}
}
測試案例正在通過,但“高爾夫”字符串不應出現在頁面的移動版本中。 檢查導航器時,我發現我不在移動版本中。
另外,我收到了這個警告:
警告:getString(addCustomRequestHeader)看到了錯誤的結果OK
addCustomRequestHeader
方法的文檔說:
這僅在瀏覽器配置為使用內置Selenium代理時才有效
我猜這就是問題所在。 知道我該怎么辦?
我從與你不同的地方開始,但結果與你的結果相同; “如何向selenium添加請求標頭”。 我知道你發布原始問題已經有一段時間了,所以這適用於那些正在尋找Java答案的人。 以下是我在JAVA中為您的selenium請求添加請求標頭時提供的一些代碼:
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'輸入變量啟動selenium服務器。 例如:
%java_home%\bin\java -jar selenium-server-standalone-2.25.0.jar -addCustomRequestHeader
您需要確保使用Selenium作為代理服務器。 我寫了一篇關於如何使用addCustomRequestHeader以支持基本身份驗證的文章。 您應該能夠推斷相關部分(注意我使用了Ruby,但它也映射到其他語言):
http://mogotest.com/blog/2010/06/23/how-to-perform-basic-auth-in-selenium
您需要注意的一件事是無法刪除請求標頭。 它總是添加劑,它是為每個請求添加的。 如果您需要使用不同的標頭,則需要重新啟動Selenium服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.