当使用Selenium打开一个网站两次时,可能会遇到"InvalidSessionIdExce
pt
ion: Message: invalid session id"错误信息。这是因为Selenium在第一次访问网站后,会创建一个会话(session),并将会话的ID保存在driver对象中。当再次尝试使用相同的driver对象进行访问时,会话ID已经失效,因此会出现该错误。
解决这个问题的方法是在第二次访问网站时创建一个新的driver对象,而不是重复使用之前的对象。以下是一个示例代码:
from selenium import webdriver
from selenium.common.exceptions import InvalidSessionIdException
# 创建一个新的driver对象
def create_driver():
driver = webdriver.Chrome()
return driver
# 第一次访问网站
driver = create_driver()
driver.get("http://example.com")
# 第二次访问网站
driver.get("http://example.com")
except InvalidSessionIdException:
# 如果出现InvalidSessionIdException,重新创建driver对象
driver = create_driver()
driver.get("http://example.com")
在上面的示例中,我们创建了一个create_driver()
函数来创建新的driver对象。在第一次访问网站时,我们使用该函数创建了一个driver对象,并使用get()
方法打开了网站。在第二次访问网站时,我们尝试使用相同的driver对象打开网站,如果出现InvalidSessionIdException
异常,我们重新创建一个新的driver对象,并再次尝试打开网站。
通过这种方法,我们可以避免因为失效的会话ID而导致的错误。