获取NoSuchSessionException会话ID为null。调用quit()后使用WebDriver吗?通过跨浏览器并行运行Java测试时出错。
测试执行看起来不错,但最终出现了NoSuchSessionException错误。我确实知道应该在某处初始化驱动程序,但尚不清楚如何执行该操作。
项目信息:硒WD,java,testng,maven。测试是基于詹金斯构建的,并在saucelabs上运行。
主类如下:
Age | AvgHoursPerMonth
----|-----------------
3 | 16
4 | 4
由主类扩展的RemoteTestBase:
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="
<%$ ConnectionStrings:EMPYHT_ConnectionString %>"
SelectCommand="SPGETNAMES" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="tnid" Type="String" DefaultValue="" />
</SelectParameters>
</asp:SqlDataSource>
protected void but_mep_Click(object sender, EventArgs e)
{
string tende=Session["TENDER"].ToString();
SqlDataSource2.SelectParameters["tnid"].DefaultValue = tende;
grd_tendermedicineslist.DataBind();
upnl_editquo.Update();
}
错误日志:
public class NewCustomerReg extends RemoteTestBase {
@Test (dataProvider = "browsers")
public void RegisterNewUser (String browser, String version, String os,
Method method) throws Exception {
this.createRemoteDriver(browser, version, os, method.getName());
Application app = new Application(driver);
app.homePage().homePageDisplayed();
Log.info("Validate Home Page");
app.homePage().registerToOrder.click();
Log.info("Click Register To Order link on the home page");
app.registerToOrderPage().registerAsNewCustomer.click();
Log.info("Click on Register As New Customer button");
driver.close();
}
答案 0 :(得分:1)
以下是发生的情况的解释:
您正在driver.close()
中呼叫RegisterNewUser
。这将关闭当前窗口。如果没有打开的窗口,则驱动程序退出。因此,当您的tearDown
呼叫driver.quit()
时,会话已经结束,您会收到错误消息。
您可以使用的解决方案:
driver.close()
并让拆解处理或
driver.quit()