6

I have the following HTML code:

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

I would like to get what is contained in href, ie, I was looking for a command which would give me "/search/?p=2&q=move&mt=1" value for href.

Could someone please help me with the respective command and css locator in selenium, for the above query?

if I have something like:

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

Out of these two if I was to get the attribute value for href whose text conatins '2', then how would my css locator synatx look like?

2 Answers 2

6

If your HTML consists solely of that one <a> tag, then this should do it:

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

You use the DefaultSelenium#getAttribute() method and pass in a CSS locator, an @ symbol, and the name of the attribute you want to fetch. In this case, you select the a and get its @href.

In response to your comment/edit:

  1. The part after @ tells Selenium that that part is the name of the attribute.

  2. You should place :contains('2') before @href because it's part of the locator, not the attribute. So, like this:

    selenium.getAttribute("css=a:contains('2')@href");
    
Sign up to request clarification or add additional context in comments.

6 Comments

thanks BoltClock, this was great help. I just have a couple of questions relatd to this: 1. What does @ mean? 2. if I have something like: <a href="/search/?p=2&q=move&mt=1"> 2 </a> <a href="/search/?p=2&q=move&mt=2"> 3 </a> Out of these two if I was to get the attribute value for href whose text conatins '2', then how would my css locator synatx look like? I tried selenium.getattribute("css=div#paginationContainer a@href:contains('2')") but this gives the following error: Could not find element attribute: css=div#paginationContainer a@href:contains('2') thanks in advanvce
Thank you so much for that, it was very helpful, it worked. I have one more query in the same regard actually. Is there a way to check whether the attribute href is present in a particular HTML tag using css and selenium. So, for example, in the above case, if I want to check if the HTML tag which conatins text '2', contains href attribute or not? Is that possible and how? Thnaks a lot.
Try selenium.isElementPresent("css=a[href]:contains('2')")
excellent, it all worked great. One last question. This will hopefully be the last. Learnt a lot today. OK, so i need to check if some text on the page is bold or not. How would i do that?
Not sure about that, sorry. (I know it's your last question.)
|
2

Changing css=a@href to href should do the trick. Let me if this did not work.

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.