如何使用selenium和css获取属性值

时间:2011-08-26 07:25:20

标签: css selenium css-selectors selenium-rc

我有以下HTML代码:

<a href="/search/?p=2&q=move&mt=1"> 2 </a>

我想得到href中包含的内容,即我正在寻找一个命令,它会给我“/ search /?p = 2&amp; q = move&amp; mt = 1”的值为href。

对于上述查询,有人可以帮助我使用selenium中的相应命令和css定位器吗?

如果我有类似的东西:

<a href="/search/?p=2&q=move&mt=1"> 2 </a> 
<a href="/search/?p=2&q=move&mt=2"> 3 </a> 

如果我要获得href的属性值,其中的文本为'2',那么我的css定位器synatx将如何显示?

2 个答案:

答案 0 :(得分:6)

如果您的HTML仅由一个<a>标记组成,那么应该这样做:

String href = selenium.getAttribute("css=a@href");

您使用DefaultSelenium#getAttribute() method并传入CSS定位器,@符号以及要获取的属性的名称。在这种情况下,您选择a并获取其@href

回复您的评论/编辑:

  1. @之后的部分告诉Selenium该部分是该属性的名称。

  2. 您应该在:contains('2')之前放置@href,因为它是定位器的一部分,而不是属性。所以,像这样:

    selenium.getAttribute("css=a:contains('2')@href");
    

答案 1 :(得分:2)

将css = a @ href更改为href应该可以解决问题。如果这不起作用,请跟我说。

    List<WebElement> ele = driver.findElements(By.className("c"));
        for(WebElement e : ele)
        {
           String doctorname = e.getText();
           String linkValue = e.getAttribute("href");
        }