午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

SessionNotFoundException:會話ID為null。調(diào)用quit()后使用WebDriver嗎?(硒)

瀏覽:185日期:2024-04-30 10:43:04
如何解決SessionNotFoundException:會話ID為null。調(diào)用quit()后使用WebDriver嗎?(硒)?

我不認為driver是null,這將導(dǎo)致NullPointerException它無法知道將它轉(zhuǎn)化成一個方式SessionNotFoundException。因此,看起來像driver已經(jīng)創(chuàng)建然后結(jié)束了,即.quit()如錯誤消息中所建議的那樣被調(diào)用得太早。

我認為這是正在發(fā)生的事情:

它開始第一個測試并調(diào)用@Before。這導(dǎo)致InitializeWebDriver.driver被設(shè)置為新的WebDriver。只有在此之后,它才會加載class CommonSteps,因此CommonSteps.driver將其設(shè)置WebDriver為剛剛創(chuàng)建的。測試成功運行,并在方法中的.quit()上調(diào)用。WebDriver``@After然后開始第二次測試。WebDriver在該@Before方法中創(chuàng)建一個新值。InitializeWebDriver.driver已更新;但是,CommonSteps.driver不會更新,因為driver = InitializeWebDriver.driver;只有在CommonSteps首次加載時才會發(fā)生。因此,當它到達driver.get(value),driver是原來的WebDriver,這已是.quit()。

這是假設(shè)您要連續(xù)進行測試。如果它們是并行的,則將有所不同。

基本上,問題在于您使用的靜態(tài)屬性WebDriver,不應(yīng)在不同的測試運行之間共享這些屬性。自從我完成這些工作已經(jīng)有一段時間了,而且我不記得您是如何存儲范圍為測試運行的變量的。(在任何情況下,我都無法確定地回答,因為您還沒有說明您使用的是哪個測試框架:JUnit,還是其他?)因此,您必須自己修復(fù)它,或者詢問如何在您使用的任何框架中獲取測試范圍的變量。

那是您想要正確執(zhí)行的操作。如果您只想進行廉價的修復(fù),并且不打算并行運行測試,我懷疑可以通過更改driver.get(value);為進行修復(fù)InitializeWebDriver.driver.get(value);。實際上,我建議您還是嘗試更改此設(shè)置,以確保我對此是正確的。

解決方法

我正在嘗試使用Cucumber /Java編寫一些硒自動UI測試。如果我的功能文件中只有一個測試,則一切正常。但是,如果我添加第二個測試,則會在上出現(xiàn)此錯誤driver.get():

org.openqa.selenium.remote.SessionNotFoundException: Session ID is null. Using WebDriver after calling quit()?Build info: version: ’2.51.0’,revision: ’1af067dbcaedd7d2ab9af5151fc471d363d97193’,time: ’2016-02-05 11:20:57’

基本上,我將在一個包中的InitializeWebdriver類上初始化webdriver變量,然后在其他(步驟定義)類中對其進行引用。我確實將下面的步驟定義作為InitializeWebdriver類的一部分列出,并且工作正常(直到移至另一個類中的另一個步驟。所以我將該步驟移至CommonSteps.java文件中以查看它是否正確)。會失敗,然后確實發(fā)生了。所以現(xiàn)在我被困住了。我正在考慮if(driver.equals(null))在中@Before執(zhí)行一個操作,如果已經(jīng)初始化,則執(zhí)行其他操作,但是我不知道其他操作會是什么。

這是我的代碼:

測試功能

Feature: Two testsBackground: Given I navigate to 'http://www.google.com'Scenario: Test one When something happensScenario: Test two When something else happens

InitializeWebDriver.java

public class InitializeWebDriver { public static WebDriver driver = null; @Before public void beforeScenario() {driver = new ChromeDriver(); } @After public void afterScenario() {driver.quit(); }}

CommonSteps.java

import myPackage.InitializeWebDriver;public class CommonSteps { static WebDriver driver = InitializeWebDriver.driver; @Given('^I navigate to '([^']*)'$') public void i_navigate_to(String url) {driver.get(value); }

謝謝!

標簽: web
相關(guān)文章:
主站蜘蛛池模板: 日韩三区在线观看 | 福利在线免费观看 | 哪个网站可以看毛片 | 成人69视频 | 最新日本中文字幕 | 手机看片欧美 | 国产无遮挡 | 亚洲欧美国产精品专区久久 | 亚洲拍拍拍 | 国产精品成人aaaa在线 | 欧美性一级 | 亚洲精品乱码 | 亚洲综人网| 国产传媒一区二区 | av第一页| 精品一二三 | 日韩欧美亚洲一区二区三区 | 高清国产一区二区三区四区五区 | 国产精品一区二区久久久 | 中文字幕资源在线 | 黑人巨大精品欧美一区二区 | 亚洲经典在线观看 | 免费成人黄色网址 | 成人精品在线看 | 国产精品一二三四五区 | 一本岛在线 | 久久久久久国产 | 欧美日韩视频在线 | 日韩超碰在线 | 男女国产视频 | 九九热在线播放 | 欧美成人做爰大片免费看黄石 | 亚洲激情免费视频 | 久久久久久久久久国产 | 四虎成人精品永久免费av九九 | 国产一页| 美女一二区 | av大片免费看 | 超碰97人人草 | 国产精品自产拍在线观看 | 亚色影库 |