Robert McCraw
Robert McCraw

Reputation: 673

Protractor find an element by tag inside a div

I've got a div in an HTML Page of which the name is always known and inside this div there is an href, the details of which are not known. It could be the direct child of the parent or it could be a further grandchild. Looks something like this:

<div class="divName">
    ...
        <a href="some url">some text</a>
    ...
</div>

I know that there will only be one link within this div, so I want to find the one link and click it.

I've tried the following but it doesn't seem to be working:

    element(by.classname('divName')).find('a').click();

Any ideas?

Upvotes: 11

Views: 38128

Answers (4)

Azad
Azad

Reputation: 5264

it seems sytax error in your code

use this

element(by.className('divName')).find('a').click();

Upvotes: -2

Robert McCraw
Robert McCraw

Reputation: 673

figured out a solution:

ptor.findElement(protractor.By.className('clsName'))
    .findElements(protractor.By.tagName('a'))
    .then(function(links){
        links[0].click();
        //place expects here, otherwise it will run async and your expects will be hit 
        //before the lookup
});

This seems to work pretty well for my purposes

Upvotes: 1

Andres D
Andres D

Reputation: 8900

element(by.css('.divName a')).click();

Or the shorter notation:

$('.divName a').click();

Upvotes: 30

ctasca
ctasca

Reputation: 25

One line answer

try with element('.divName a').click();

Upvotes: 0

Related Questions