无法找到元素异常

时间:2016-02-15 05:53:32

标签: c#-4.0 selenium-webdriver

例外

  

“{”无法找到元素:{\“method \”:\“xpath \”,\“selector \”:\“//> div [@ class ='item-content'] [3] \ “}”}“

代码

public static  void Main ()
{
    Login_FAM lgn = new Login_FAM();
    Demat_Acount prg = new Demat_Acount();
    lgn.Login();
    prg.DematAdd();
}

// login.cs文件//   public FirefoxDriver驱动程序;

    public Login_FAM()
    {
        driver  = new FirefoxDriver();
    }
public void Login()
{
    driver.Url = "http://180.211.114.147:97//Account/Login";

    var usernameF = driver.FindElementById("UserName");
    var passwdF = driver.FindElementById("Password");
    var loginB = driver.FindElementById("btnLogin");

    usernameF.SendKeys("harsh");
    passwdF.SendKeys("harsh123");
    loginB.Submit();
    // Thread.Sleep(3000);
}

// demat_acount.cs file //

public FirefoxDriver驱动程序;

    public Demat_Acount()
    {
        driver = new FirefoxDriver();
    }

public void DematAdd()
{        
    IWebElement pro = driver.FindElement(By.XPath("// div[@class='item-content'][3]"));
    pro.Click();

    if(pro != null)
    {
        pro.Click();
    }
}

下面是我的HTML代码

<ul class="main-navigation-menu ng-scope" ng-controller="menuctrl">
  <li ui-sref-active="active" class="active">
    <a ui-sref="app.dashboard" href="#/app/dashboard">
      <div class="item-content" style="padding-right:10px;padding-top:5px">
        <div class="item-media">
          <i style="font-size:20px" class="icon-Dashboard"></i>
        </div>
        <div class="item-inner">
          <span class="title ng-scope">Dashboard</span>
        </div>
      </div>
    </a>
  </li>
  <li ui-sref-active="active">
    <a ui-sref="app.familydashboard" href="#/app/FamilyDashboard">
      <div class="item-content" style="padding-right:10px;padding-top:5px">
        <div class="item-media">
          <i style="font-size:20px" class="icon-FamilyDashboard"></i>
        </div>
        <div class="item-inner">
          <span class="title ng-scope">Family Dashboard</span>
        </div>
      </div>
    </a>
  </li>
  <li ui-sref-active="active" class="open">
    <a href="javascript:void(0)">`enter code here`
      <div class="item-content" style="padding-right: 10px; padding-top: 5px">
        <div class="item-media">
          <i style="font-size:20px" class="icon-Profile2"></i>
        </div>
        <div class="item-inner">
          <span class="title"> Profile </span>
          <i class="icon-arrow" style="margin-top: 3px"></i>
        </div>
      </div>
    </a>
    <ul class="sub-menu" style="display: block;">
      <li>
        <li>
          <a ui-sref="app.demataccount" href="#/app/DematAccount">Demat Account</a>
        </li>
        <li>
          <a ui-sref="app.familyassociation"href="#/app/FamilyMemberAssociation">Family Association</a>
        </li>
      </ul>
    </li>
  </ul>

我认为我在没有创建方法和对象的情况下执行了相同的代码,而且工作正常但是方法和对象无法正常工作

1 个答案:

答案 0 :(得分:0)

WebDriver无法找到该元素,因为您的元素嵌入在另一个div标记中。确保您的XPath是正确的。使用firepath验证它。我是自动化的新手,如果我收到此错误,我将验证我的XPath。

尝试将XPath更改为

// div[@class='item-content'][3]/div/i 

我不确定这是否可以解决您的问题,但试图提供帮助。确保元素存在或等待元素可见。