2014-11-01 195 views
-4

我在下一页获取元素<i class="angle-up"></i>时遇到问题。选择应取决于"data-id"值。提前致谢。WebDriver:通过CSSSelector或XPath查找元素

<li class="recent" data-to="3" data-off="23" data-id="5"> 
    <a class="collapse in" href="/board"> 
     <span> 
      Board 
     </span> 
     <i class="angle-up"></i> 
    </a> 
</li> 
<li class="" data-to="3" data-off="23" data-id="7"> 
    <a class="collapse in" href="/set"> 
     <span> 
      Set 
     </span> 
     <i class="angle-up"></i> 
    </a> 
</li> 

回答

0

嗯,我想如果值数据-ID依赖,那么你可能需要将XPath或CSS选择3个部分,如下分割:

第一部分= //李[@ data_id = ] // I [@类= '角向上 ']

'

2部分=

第三部分=(使用适当的变量取在运行时该值)'

,现在你可以使用下面的代码使用元素

public class TestElement { 

    public static void main(String args[]) 
    { 
     WebDriver driver= new FirefoxDriver(); 
     driver.get(YOUR INTERNAL URL HERE.); 

     String elementPart1=//li[@data_id=' 
     String elementPart2=5  //keeping the id you are looking for 
     String elementPart3=']//i[@class='angle-up'] 

     WebElement element = driver.findElement(By.xpath(elementPart1+elementPart2+elementPart3); 

    } 
} 

在这里,你可能会看到这样的XPath的一个例子是

//li[@data_id='5']//i[@class='angle-up'] 

另外,如果我会建议你使用检查firefinder这是一个firebug扩展名,用于验证xpath是否正确。

+1

作品。感谢帮助! – 2014-11-01 02:25:03

相关问题