.net – Selenium Web驱动程序在第一次测试运行并且TestFixtureTearDown发生后失败

.net – Selenium Web驱动程序在第一次测试运行并且TestFixtureTearDown发生后失败,第1张

概述我有多个功能测试编写为NUnit测试,这些测试彼此独立,并且当我一次运行它们时工作正常.但是,如果我选择所有测试并立即运行它们,我的Web驱动程序变量在执行第一次测试后崩溃.如果我采用TestFixtureTearDown方法运行所有测试,但最终会有很多开放浏览器.我已经尝试在TearDown中使用Quit()和Close()方法.如何编写TearDown方法,在每次测试运行后关闭浏览器但不会导致 我有多个功能测试编写为NUnit测试,这些测试彼此独立,并且当我一次运行它们时工作正常.但是,如果我选择所有测试并立即运行它们,我的Web驱动程序变量在执行第一次测试后崩溃.如果我采用TestFixtureTearDown方法运行所有测试,但最终会有很多开放浏览器.我已经尝试在TearDown中使用Quit()和Close()方法.如何编写TearDown方法,在每次测试运行后关闭浏览器但不会导致整个测试崩溃?我迫切需要你的帮助,所以请提出任何可行的建议我愿意尝试.这是我在测试运行后得到的错误.

AFT.AministratorPageTest("firefox").SuperadminAssignsPermissionsOfadmin-catalyst:  OpenQA.Selenium.WebDriverException : Unexpected error. System.Net.WebException: Unable to connect to the Remote Server ---> System.Net.sockets.socketException: No connection Could be made because the target machine actively refused it 127.0.0.1:7055at System.Net.sockets.socket.DoConnect(EndPoint endPointSnapshot,SocketAddress socketAddress)at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,Socket s4,Socket s6,Socket& socket,IPAddress& address,ConnectSocketState state,IAsyncResult asyncResult,Int32 timeout,Exception& exception)--- End of inner exception stack trace ---at System.Net.httpWebRequest.GetRequestStream(TransportContext& context)at System.Net.httpWebRequest.GetRequestStream()at OpenQA.Selenium.Remote.httpCommandExecutor.Execute(Command commandToExecute)at OpenQA.Selenium.firefox.Internal.ExtensionConnection.Execute(Command commandToExecute)at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute,Dictionary`2 parameters)TearDown : system.invalIDOperationException : No process is associated with this object.

这是我的抽象类,其他所有测试都继承自

using System;using System.Collections.Generic;using System.linq;using System.Text;using NUnit.Framework;using OpenQA.Selenium;using OpenQA.Selenium.firefox;using OpenQA.Selenium.IE;using OpenQA.Selenium.Support;namespace BusinessLayer{    [TestFixture("IE")]    [TestFixture("firefox")]     public abstract class BaseTest     {        public IWebDriver browser { get; set; }        public String drivername;        /// <summary>        /// required No Argument Constructor        /// </summary>        public Basetest()        { }        /// <summary>        /// Constructor to allow for TestFixture parameterization        /// </summary>        /// <param name="name"></param>        public BaseTest(string name)        {             this.drivername = name;         }        /// <summary>        /// Loads browser into the TestFixture        /// </summary>        [TestFixturesetUp]        public voID CreateDriver()        {            if (drivername != null)            {                this.browser = (IWebDriver)browser.Getbrowser(drivername);            }            else            {                throw new Exception("Drivername cannot be null");            }        }        /// <summary>        /// Insures browser is destroyed at conclusion of test        /// </summary>        [TestFixtureTearDown]        public voID Flushbrowser()        {            browser.Quit();            browser = null;        }    }}

这是我的一项测试

using System;using System.Collections.Generic;using System.linq;using System.Text;using OpenQA.Selenium;using NUnit.Framework;using BusinessLayer;using BusinessLayer.Pages;using System.Threading;namespace Pegged_AFT{    class ScreeningProcesstests : BaseTest    {        public ScreeningProcesstests()            : base()        { }        public ScreeningProcesstests(string name)            : base(name)        { }       [Test]        public voID TestHappyPathToRegistration()        {            User user = new User().GetCandIDate();            Components components = new Components(                    browser: browser.Getbrowser(drivername),clIEnt: new ClIEnt("test"),user: user,credentials: new Credentials(user.emailAddress,user.password)                    );            AddUserPage addUser = new AddUserPage(components);            addUser.AddUser(user);            Screening screening = new Screening(components);            screening.Registration();            screening.InitPage(new TestPage(components));            Assert.AreEqual(screening.testPage.TryToFindElement(By.ID("ctl00_ContentPlaceHolder1_lblSectionname")).Text,"CandIDate Registration");        }}

如果有人想知道哪些组件只是我创建的一个类来处理我的Web应用程序运行所需的所有用户和Web驱动程序变量.每次创建页面对象时都会实例化它.

@H_419_28@解决方法 我终于弄明白了我的问题.我设置浏览器驱动程序的方法“browser.Getbrowser(drivername)”(我还没有使用过)没有创建浏览器的新实例.相反,它重用了最初创建的浏览器.因此,使用浏览器后崩溃,第一次测试时Tore down.使用browser.Getbrowser(drivername)方法在NUnit测试的SetUp方法中创建IWebDriver的新实例将解决该问题. 总结

以上是内存溢出为你收集整理的.net – Selenium Web驱动程序在第一次测试运行并且TestFixtureTearDown发生后失败全部内容,希望文章能够帮你解决.net – Selenium Web驱动程序在第一次测试运行并且TestFixtureTearDown发生后失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1081295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存