我有Sampler,在其中我要切换到子窗口,但是我需要保存主窗口的句柄才能在另一个示例中切换到它: 请看截图
如何在下一个采样器中调用它?
WDS.browser.switchTo()。defaultContent()导致错误:
ERROR c.g.j.p.w.s.WebDriverSampler: no such window: window was already closed
示例代码:
WDS.sampleResult.sampleStart()
var handles = WDS.browser.getWindowHandles()
var mainWindow = WDS.browser.getWindowHandle()
while (handles.size()!=2){
handles = WDS.browser.getWindowHandles()
WDS.log.info(handles.size())
}
var iterator = handles.iterator()
var counter = 1;
while (iterator.hasNext())
{
var handle = iterator.next()
WDS.browser.switchTo().window(handle)
WDS.log.info('Window ' + counter + ' title = ' + WDS.browser.getTitle())
counter++;
}
WDS.sampleResult.sampleEnd()
样本B代码:
WDS.sampleResult.sampleStart()
var timeunit = java.util.concurrent.TimeUnit
WDS.browser.manage().timeouts().pageLoadTimeout(30, timeunit.SECONDS)
var pkg = JavaImporter(org.openqa.selenium, org.openqa.selenium.support.ui)
var timeunit = java.util.concurrent.TimeUnit
var wait = new pkg.WebDriverWait(WDS.browser, 3000)
var ssn = ("078-05-"+WDS.args[0])
//WDS.browser.switchTo().defaultContent()
WDS.browser.switchTo().window(variable mainWindow from SwitchToWorkFlowWindow sampler)
WDS.sampleResult.sampleEnd()
答案 0 :(得分:1)
有WDS.vars
的简写,基本上是JMeterVariables类的一个实例,因此您可以使用它将数据从一个采样器传递到另一个采样器,例如:
在第一个采样器中:
var foo = 'bar'
WDS.vars.put('foo', foo)
在第二个采样器中:
var foo = WDS.vars.get('foo')
WDS.log.info('Foo value is: ' + foo)
您可以在The WebDriver Sampler: Your Top 10 Questions Answered指南中找到有关WebDriver Sampler的高级用法的更多信息