Selenium 如何关闭Jmeter webdriver采样器中新打开的窗口。?

Selenium 如何关闭Jmeter webdriver采样器中新打开的窗口。?,selenium,automation,jmeter,webdriver,Selenium,Automation,Jmeter,Webdriver,我已经在JMeter webdriver sampler中自动执行了一些操作,在一个场景中,我将移动到新窗口,但我无法在该场景中关闭新打开的窗口。 WDS.browser.close()在那里不起作用。如何仅关闭新窗口并与家长一起工作 提前感谢。我(在python中)做的是切换句柄,关闭当前窗口,然后切换回来。也许它可以为你的问题提供灵感: def close_additional_tabs(self): self.cfg.logger.info("[TEARDOWN] Clos

我已经在JMeter webdriver sampler中自动执行了一些操作,在一个场景中,我将移动到新窗口,但我无法在该场景中关闭新打开的窗口。
WDS.browser.close()
在那里不起作用。如何仅关闭新窗口并与家长一起工作

提前感谢。

我(在python中)做的是切换句柄,关闭当前窗口,然后切换回来。也许它可以为你的问题提供灵感:

def close_additional_tabs(self):
        self.cfg.logger.info("[TEARDOWN] Close open tabs and switch to original frame.")
        while len(self.webdriver.window_handles) > 1:
            self.webdriver.switch_to_window(self.webdriver.window_handles[-1])
            self.webdriver.close()
            time.sleep(1)
            self.webdriver.switch_to_window(self.webdriver.window_handles[-1])

这适用于选项卡,但也适用于windows。

您可以执行以下操作:

var handles = WDS.browser.getWindowHandles() 
var iterator = handles.iterator()
var currentHandle = WDS.browser.getWindowHandle()
while(iterator.hasNext()) {
    var handle = iterator.next() 
    if (handle != currentHandle) {
        WDS.browser.switchTo().window(handle)
        WDS.browser.close()
    }
}
WDS.browser.switchTo().defaultContent()
参考资料:


对于JMeter webdriver采样器,这是不可能的。这就是BeanShell语言,我熟悉IDE中的窗口处理,除了jmeter webdriver sampler之外,我都很熟悉如何使用BeanShell语言来实现这一点。