使用Selenium查找两个隐藏元素

时间:2014-09-11 10:29:16

标签: selenium-webdriver

我试图在我的网站中找到两个隐藏的元素。我试图通过使用XPath,DOM ID和CSS选择器找到它,但我还没有成功。

这是我的代码:(在相关元素之后有HTML评论)

<style type="text/css">
<ul id="nav" class="Navul">
  <li id="li_1" class="menuActive" lname="Mnu_Home">
  <li id="li_2" lname="Mnu_Task">
  <li id="li_3" lname="Mnu_Sales">
  <div class="DetailHolderMenu">
    <div id="topnav4" class="topnav4">
      <a href="#">
        Sales<span></span>
      </a>
  </div>
<div class="DetailContainerMenu w170" style="font-weight: lighter; display: none;">
  <div class="ChildLinks">
    <ul class="lsn">
      <li id="li_3_1"> <!-- ELEMENT I'M TRYING TO FIND -->
        <a href="/Web/ProductRender/Index?childProductId=Product.Achilles_GBO.WIP&childComponentId=Supplier On Boarding&schemaId=Schema.4776.WIP&productId=Product.Achilles_GBO.WIP&communityId=TxnyD.Communities.2.1&index=3&childIndex=3_1">Prospects</a> <!-- OTHER ELEMENT -->
        <span></span>
      </li>

2 个答案:

答案 0 :(得分:1)

点击销售链接后,潜在客户链接是否可见? 你呢    需要做任何其他动作来点击潜在客户链接(比如鼠标    悬停)?

尝试以下逻辑

//click on Sales link    
driver.findElement(By.xpath("//div[@id='topnav4']/a[text()='Sales']")).click();

//click prospects
driver.findElement(By.xpath("//div[contains(@class,'DetailContainerMenu')]//li[@id='li_3_1']//a[text()='Prospects']")).click();

答案 1 :(得分:0)

Webdriver可以找到隐藏的元素,但它不允许使用它。 我不知道为什么你无法通过LinkText找到它,所以尝试以下一种方式找到它:

element = driver.FindElement(By.Id("li_3_1")).FindElement(By.TagName("a"));