51Testing软件测试论坛

标题: selenium.close()方法后再调用selenium.open("/")报错 [打印本页]

作者: yimaotao    时间: 2010-12-27 13:18
标题: selenium.close()方法后再调用selenium.open("/")报错
本帖最后由 yimaotao 于 2010-12-28 09:44 编辑

我想直接用selenium 直接关掉浏览器,然后再打开浏览器,操作如下:

selenium.close()方法后再调用selenium.open("/")报了以下错误:

org.openqa.selenium.WebDriverException: Session has no driver: f05f2e41-1216-4a02-8785-f1a96fc58b3a
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_11'
Driver info: driver.version: remote
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:94)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:327)
    at org.openqa.selenium.firefox.FirefoxDriver.execute(FirefoxDriver.java:191)
    at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:137)
    at org.openqa.selenium.internal.seleniumemulation.Open.handleSeleneseCommand(Open.java:36)
    at org.openqa.selenium.internal.seleniumemulation.Open.handleSeleneseCommand(Open.java:22)
    at org.openqa.selenium.internal.seleniumemulation.SeleneseCommand.apply(SeleneseCommand.java:30)
    at org.openqa.selenium.WebDriverCommandProcessor$1.call(WebDriverCommandProcessor.java:271)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
... Removed 4 stack frames
作者: gaha    时间: 2010-12-30 17:53
mark等待
作者: robin.von    时间: 2010-12-31 10:18
如果用Selenium RC的话,close方法是模拟用户点击了浏览器的关闭按钮,
open方法是在当前打开的浏览器实例中,打开指令的URL,本身没有新建浏览器实例的功能。
调用了CLOSE以后,浏览器已经关闭了,再打开URL当然会报错。

要实现关闭浏览器,再打开新浏览器,要先搞清楚selenium rc启动过程打开了一个browser和一个session。Close方法关闭的是session,browser没有关闭。你可以调用stop方法关闭browser和session.然后再重新初始化selenium对象,重新打开browser和session.再进行操作。

看你的LOG可能用的是webdriver.如果这样的话,应该不是直接用我上面的方法,但原理是类似的,即关闭浏览器以后,要重新实例化浏览器对象。
作者: 牛粪    时间: 2011-3-13 19:34
先用selenium.stare()应该就没问题了吧




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2