0

I'm trying to find out the xpath for resource manager element, when I tried with this code, driver.findElement(By.xpath("Resource Manager xpath")).click(), I turned up with error saying unable to find the element.

<div class="os-titlebar navbar navbar-inverse">
   <div class="navbar-inner">
      <div class="container">
          <ul class="nav menu-primary os-navbar-icon">
          <ul class="nav context-menu" style="">
           <ul class="nav os-navbar-icon os-titlebar-shortcuts pull-right os_shortcuts">
                 <li class="os-navbar-icon-home selected">
                 <li class="os-navbar-icon-quicklaunch os_quick_start">
                 <li class="os-navbar-icon-resourcemanager">
                  <li class="os-navbar-icon-apptray">
                  <li class="os-navbar-icon-notifications">
                  <li class="os-navbar-icon-minimise-close">
            </ul>
<form class="navbar-search pull-right ui-os-search-form" action="">
<ul class="nav os-navbar-icon os-desktop-navigation" style="left: 407.5px;">
</div>
4

3 回答 3

3

Resource Manager xpath is not a valid xpath expression.

This should work:

driver.findElement(By.xpath("//li[@class='os-navbar-icon-resourcemanager']")).click()
于 2013-07-16T13:19:14.257 回答
2

使用 css 选择器而不是 xpath。也是WebDriverWait的一个例子

WebDriverWait wait = new WebDriverWait(driver,300/*timeout in seconds*/);
By findBy = By.cssSelector("li.os-navbar-icon-resourcemanager");
wait.until(ExpectedConditions.elementToBeClickable(findBy)).click();
于 2013-07-16T16:06:06.683 回答
1

您肯定会在两种情况下面临“无法找到元素”。

 1.The Element is yet to Load
     - Put some wait here.
 2. You may try to locate the element wrongly .
     - Double Check your Xpath/ID(what ever)
     - Make sure you are in the same frame where the element is present.If not, switch to the frame then.
于 2013-07-17T08:52:57.953 回答