kyoob
kyoob

Reputation: 519

How do I use Perl's Remote::Selenium::WebElement to verify the URL a hyperlink will take me to?

Seems like it should be straightforward but I can't seem to get to the bottom of it.

Here's the HTML I'm working with:

<li id="a" class="FILElevel3" onclick="changeMenu("b")">
<a onclick="stopBubble(event);" href="javascript:LinkPopup('/sub/URL.html')">Visible Text</a>

I'm able to find the element using XPaths:

my $returned_asset = $sel->find_element("//*[\@class='LINKlevel3']");

And I can verify this works because I'm able to extract the visible text from it:

my $returned_name = Selenium::Remote::WebElement::get_text($returned_asset);

I just can't seem to find the sequence to pull the HREF attribute from the element to put the link's URL into a verifiable string. Should I be able to do this using WebElement's get_attribute() method? I've tried variations on this:

my $returned_URL = $returned_asset-> Selenium::Remote::WebElement::get_attribute("a/href");

...where I've plugged in everything I could think of for that "a/href" string. What should go in there?

In the end I'd like to be able to put "javascript:LinkPopup('/sub/URL.html')" into a string and verify that my URL is in there.

Upvotes: 2

Views: 976

Answers (1)

Amey
Amey

Reputation: 8548

have you tried

my $returned_asset = $sel->find_element("//*[\@class='LINKlevel3']/a");

my $returned_URL = $returned_asset->Selenium::Remote::WebElement::get_attribute("href");

Upvotes: 3

Related Questions