Siraj Syed
Siraj Syed

Reputation: 1361

Pass a Header/Cookie in jmeter webdriver

Trying to Pass a hardcoded header into a jmeter webdriver Script

var pkg=JavaImporter(org.openqa.selenium,org.openqa.selenium.support.ui) 
var Thr=JavaImporter(java.lang.Thread)
var wait = new pkg.WebDriverWait(WDS.browser, 10) 
//var ui=JavaImporter(org.openqa.selenium.support.ui) 
WDS.sampleResult.sampleStart() 
var usernameField = WDS.browser.findElement(pkg.By.id('uname')) 
usernameField.sendKeys(['TDM_73312'])
var passwordField = WDS.browser.findElement(pkg.By.id('pw_TLNPI')) 
passwordField.sendKeys(['abcd'])     
WDS.sampleResult.setRequestHeaders('C1_PID:S6VwSlA5ncV0XCUAgwXXrh399zhOZRM9xuIgueFxe2M48GKvRtN2Kd4Dg3zixa0r'+'\n'+'profile_ref_id:S6VwSlA5ncV0XCUAgwXXrh399zhOZRM9xuIgueFxe2M48GKvRtN2Kd4Dg3zixa0r')
Thr.Thread.sleep(2000)
var loginButton=WDS.browser.findElement(pkg.By.id('login-start-button')) 
loginButton.click() //click on the login button
WDS.log.info(WDS.name + ' has logged an entry')
WDS.sampleResult.sampleEnd()

I need to pass these 2 header for a successful login

WDS.sampleResult.setRequestHeaders('C1_PID:S6VwSlA5ncV0XCUAgwXXrh399zhOZRM9xuIgueFxe2M48GKvRtN2Kd4Dg3zixa0r'+'\n'+'profile_ref_id:S6VwSlA5ncV0XCUAgwXXrh399zhOZRM9xuIgueFxe2M48GKvRtN2Kd4Dg3zixa0r')

When I run this script its not successfully logging in

Upvotes: 1

Views: 1834

Answers (1)

Dmitri T
Dmitri T

Reputation: 168122

  1. Unfortunately you cannot amend HTTP Headers as it is not possible by WebDriver design.
  2. In order to manipulate cookies you can use WebDriver.manage().addCookie() method. Given JavaScript (default language for the WebDriver Sampler) this can be done like:

    var myCookie = new org.openqa.selenium.Cookie("Cookie_Name","Cookie_Value");
    WDS.browser.manage().addCookie(myCookie);
    

See The WebDriver Sampler: Your Top 10 Questions Answered article for more WebDriver Sampler tips and tricks

Upvotes: 4

Related Questions