Selenium WDS如何使用来自其他采样器的变量?

Selenium WDS如何使用来自其他采样器的变量?,selenium,jmeter,webdriver,Selenium,Jmeter,Webdriver,我有一个切换到子窗口的采样器,但我需要保存主窗口的句柄,以便能够在另一个示例中切换到它: 请看截图 主窗口保存手柄的采样器: 我怎样才能在下一个采样器中调用它 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.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()
有一个速记,它基本上是类的一个实例,因此您可以使用它将数据从一个采样器传递到另一个采样器,如:

在第一个采样器中:

var foo = 'bar'
WDS.vars.put('foo', foo)
在第二个采样器中:

var foo = WDS.vars.get('foo')
WDS.log.info('Foo value is: ' + foo)

您可以在:指南中找到更多关于WebDriver Sampler高级用法的信息,请阅读原因。粘贴代码并正确格式化。这个问题通常是关于Jmeter采样器的。如果你不理解一个问题,你不需要复制代码,也不需要复制它。问题是:我可以从样本2中的样本1调用VAR吗?很讽刺的是,当我的评论与理解问题无关时,你却指责我不理解问题。这是因为你已经发布了一个截图的代码,这是非常不鼓励和不需要在这种情况下,因为它没有增加任何价值。现在在你回答之前,你看过我发布的链接中的内容了吗?如果你这样做了,你会看到一个关于为什么拥有代码截图是一个坏主意并且不被鼓励的讨论。你在回答中的态度在今天或在生活中都不会赢得你的青睐。我已经添加了一个代码,但我不明白你为什么要这么做。若你们知道有并没有可能从样本B中的样本A调用变量,代码就是一个例子。截图是为了理解VAR在另一个样本中,非常感谢!这正是我一直在寻找的!