selenium具有暂时存储数据项,然后在后续测试中检索它们的能力,例如
storeText | @id='ctl00_ContentPlaceHolder1_FormView1' | someValue
当需要跨测试边界结转值时,这在单个测试中以及在同一测试套件中的测试之间都可以很好地工作。不幸的是,它在测试套件之间不起作用(这是我们的应用程序的要求,其中包括许多引用同一对象的工作流)。Selenium如何用于跨Test Suite边界存储值?
可以使用javascript将Selenium Test中的值存储到浏览器的本地存储中,例如,如果以前已将某个值存储到 someValue :
getEval | this.browserbot.getUserWindow().localStorage.setItem("someValue",storedVars['someValue']) assertEval | this.browserbot.getUserWindow().localStorage.getItem("someValue") | ${someValue} storeEval | this.browserbot.getUserWindow().localStorage.getItem("assetLabel") | someValue
在这种情况下, this.browserbot.getUserWindow() 返回应用程序的窗口。这会将 someValue 存储到本地存储中,随后可以从中将其取回到Selenium存储的变量中。