System.Reflection.TargetInvocationException:调用的目标抛出异常



我正在尝试自动化一个reactjs应用程序,我们的项目使用的框架建立在C#和量角器网络上。

在任何单击或断言函数之后,我收到以下错误,但代码中定义的操作成功执行。

System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
  ----> OpenQA.Selenium.WebDriverTimeoutException : timeout

此错误的原因是什么?

    using NUnit.Framework;
    using OpenQA.Selenium;
    using OpenQA.Selenium.Interactions;
    using OpenQA.Selenium.Support.PageObjects;
    using OpenQA.Selenium.Support.UI;
    using Protractor;
    using System;
    using System.Collections.Generic;

    public Class personalinformations
    {
    private NgWebDriver _ngdriver;

            public PersonalInformations(IWebDriver driver)
            {
                _ngdriver = new NgWebDriver(driver);
                PageFactory.InitElements(_ngdriver, this);
                _ngdriver.IgnoreSynchronization = true;
            }
     [FindsBy(How = How.Id, Using = "btnSubmit")]
            private IWebElement btnsave { get; set; }
     public void saveSection()
            {
WebDriverWait wait = new WebDriverWait(ngdriver, TimeSpan.FromSeconds(30));         
           wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*@id='btnSubmit']"));
btnsave.Click();
    }
}

注意:在使用 Thread.Sleep(1000( 等待时,有时代码可以正常工作。我也尝试使用Javascript单击结果相同的元素。

一旦你通过WebDriverWaitExpectConditions方法ElementIsVisible等待元素,因为在下一步中你调用Click()所以你需要调用ElementToBeClickable方法而不是ElementIsVisible方法,如下所示:

public void saveSection()
{
    WebDriverWait wait = new WebDriverWait(ngdriver, TimeSpan.FromSeconds(30));         
    wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//*@id='btnSubmit']"));
    btnsave.Click();
}

这是一个有趣的异常:"System.Reflection.TargetInvocationException:调用目标抛出了异常。 我遇到过几次这种情况,但我搜索了这篇文章"调用目标已引发异常"错误(mscorlib( 他们说你应该检查后面这个异常的根本原因。 所以我添加了一个

尝试{元素。Click((;}catch(Exception e({Console.WriteLine(e(;}

那么例外似乎逃脱了...

相关内容

  • 没有找到相关文章

最新更新