C#量角器从未提供resumeBootstrap

时间:2018-05-04 12:54:28

标签: c# selenium selenium-webdriver selenium-chromedriver protractor-net

这是我的第一个stackoverflow问题。我已经在这个网站上搜索了一些答案,但我找到的所有解决方案对我来说都没有用,或者它们是用于Java或javascript的。

情况

作为一名初级自动化测试人员,我使用Selenium Webdriver和Protractor.Net在C#中创建了一种自动化测试框架。 该框架由两部分组成。

  1. 页面对象

  2. 测试

  3. 还有一个页面对象基类。在这个类中,我定义了每个页面对象使用的方法,例如打开特定程序模块的方法。 在测试中,还有一个基类。在这个类中定义了Test属性(C#UnitTest),例如TestInitialize,TestCleanup,AssemblyCleanup。

    在Test Base类中,我还定义了NgWebDriver,ChromeDriver:

    driver = new NgWebDriver(new OpenQA.Selenium.Chrome.ChromeDriver());
                    driver.Manage().Window.Maximize();
    

    在Page Object Base类中,我定义了一个打开特定部分的方法 网站:

    public void OpenSPA(string spa)
        {                      
            driver.Navigate().GoToUrl(spa, true);
            driver.Navigate().Refresh();
    
        }
    

    pararmeter spa包含要导航到的URL。

    测试用例

    测试用例很简单:  打开网站的模块x 模块x只是一个网址

    测试用例的完整代码:

    [TestMethod]
    [TestCategory(cat), TestCategory(regression)]
    public void Organisatie_CheckActief()
    {
        bool is_actief;
    
        var organisatie = new CrmSPA(driver);
    
        organisatie.VulVeld("Vrij zoeken", "XXXX");
        is_actief = organisatie.IsRelatieActief();
    
        //Assertion
        Assert.IsTrue(is_actief == true, "Relatie is niet actief.");
    

    问题: 几个星期前,我在运行测试用例时遇到以下错误:

    Test Name:  Organisatie_CheckActief
    Test FullName:  FirstTest.Webdrivers.WijzigenOrganisatie_Basis.Organisatie_CheckActief
    Test Source:    C:\Users\XXXX\TestCases\RelatieSPA\Organisatie\WijzigenOrganisatie_basis.cs : line 168
    Test Outcome:   Failed
    Test Duration:  0:00:41,1353784
    

    结果StackTrace:

    bij OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
       bij OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
       bij OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScriptCommand(String script, String commandName, Object[] args)
       bij OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteAsyncScript(String script, Object[] args)
       bij Protractor.NgWebDriver.set_Url(String value) in c:\Users\Bruno\Projets\GitHub\bbaia\protractor-net\src\Protractor\NgWebDriver.cs:regel 163
     --- End of inner exception stack trace ---
        bij Protractor.NgWebDriver.set_Url(String value) in c:\Users\Bruno\Projets\GitHub\bbaia\protractor-net\src\Protractor\NgWebDriver.cs:regel 193
       bij Protractor.NgNavigation.GoToUrl(String url, Boolean ensureAngularApp) in c:\Users\Bruno\Projets\GitHub\bbaia\protractor-net\src\Protractor\NgNavigation.cs:regel 112
       bij FirstTest.PageObjects.BaseSPA.OpenSPA(String spa) in C:\Users\Rahied\Documents\Visual Studio 2015\Projects\BisProPortal\BisProPortal\FirstTest\PageObjects\BaseSPA.cs:regel 55
       bij FirstTest.PageObjects.CrmSPA.CrmSPA..ctor(NgWebDriver driver) in C:\Users\Rahied\Documents\Visual Studio 2015\Projects\BisProPortal\BisProPortal\FirstTest\PageObjects\CRM\CrmSPA\CrmSPA.cs:regel 37
       bij FirstTest.Webdrivers.WijzigenOrganisatie_Basis.Organisatie_CheckActief() in C:\Users\Rahied\Documents\Visual Studio 2015\Projects\BisProPortal\BisProPortal\FirstTest\TestCases\RelatieSPA\Organisatie\WijzigenOrganisatie_basis.cs:regel 174
    Result Message: 
    Test method FirstTest.Webdrivers.WijzigenOrganisatie_Basis.Organisatie_CheckActief threw exception: 
    System.InvalidOperationException: **Angular could not be found on the page** 'https://XXXXX/CRM/Relaties/index?AdministratieID=10000000000144&ProgrammaID=10000000002099' ---> OpenQA.Selenium.WebDriverTimeoutException: asynchronous script timeout: result was not received in 30 seconds
      (Session info: chrome=66.0.3359.139)
      (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 6.1.7601 SP1 x86_64)
    

    屏幕/浏览器上的结果

    运行测试时会发生以下情况:

    1. Chrome浏览器启动(确定)

    2. Chrome浏览器打开最大化(ok)

    3. Chrome浏览器获取网址(确定)

    4. 浏览器为空显示空白页(NOK)

    5. 我发现以下错误: 角度从未提供resumeBootstrap

      我搜索了谷歌和stackoverflow,我尝试了一些像同步选项的答案: driver.IgnoreSynchronization 问题并不总是出现。有时会加载页面并继续测试。 我已经尝试重新安装量角器网,一个较新的chromedriver和seleniumdriver。问题依然存在。

      如果有人可以帮我这个。

1 个答案:

答案 0 :(得分:0)

此错误消息......

OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)

...意味着 RemoteWebDriver 在执行命令时出错。

Selenium是一个开源框架,您可以查看源代码here

GoToUrl() RemoteNavigator.cs中定义,只接受一个参数 string url ,如下所示:

    /// Navigate to a url for your test
    /// </summary>
    /// <param name="url">String of where you want the browser to go to</param>
    public void GoToUrl(string url)
    {
        this.driver.Url = url;
    }

但是在您的代码块中,在调用GoToUrl()方法以及string spa 时,您还传递了 true 。这可能会引发错误。

解决方案

GoToUrl()方法中删除参数 true 将解决您的问题。