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

Sun*_*nny 6 css selenium css-selectors selenium-rc

我有以下HTML代码:

<a href="/search/?p=2&q=move&mt=1"> 2 </a>
Run Code Online (Sandbox Code Playgroud)

我想得到href中包含的内容,即我正在寻找一个命令,它会给我"/ search /?p = 2&q = move&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> 
Run Code Online (Sandbox Code Playgroud)

在这两个中,如果我要获取文本conatins为'2'的href的属性值,那么我的css定位器synatx将如何显示?

Bol*_*ock 6

如果您的HTML仅包含该<a>标记,那么应该这样做:

String href = selenium.getAttribute("css=a@href");
Run Code Online (Sandbox Code Playgroud)

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

在回复您的评论/编辑时:

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

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

    selenium.getAttribute("css=a:contains('2')@href");
    
    Run Code Online (Sandbox Code Playgroud)