Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selecting a link with Selenium Webdriver?

How can I select a link with selenium webdriver?

Selenium before would be done by:

    selenium.click("link=Users");

But how can I do the same with webdriver?

I thought about

    driver.findElement(By.partialLinkText("Users")).click();

but this does not work. No link is clicked!

<html>
<body>
<div id="mainpage" class="mainpage">
<div id="pageid" class="pageid">
<div id="body">

<table>
<tbody>
<tr>
<td>
<table>
<tbody>
<tr>
<td>
<div id="id_menu" class="mymenu">
<ul>
<li class="li_class ">
<a href="/user.xhtml">Users</a>

stacktrace:

    org.openqa.selenium.NoSuchElementException: Unable to locate element: 
{"method":"partial link text","selector":"Users"} Command duration or timeout: 11.36 
seconds For documentation on this error, please visit: http://seleniumhq.org/exceptions
/no_such_element.html Build info: version: '2.24.1', revision: '17205', time: '2012-06-19 
17:28:14' System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', 
java.version: '1.7.0_02' Driver info: driver.version: RemoteWebDriver Session ID: 
178449d1-4ff3-44f3-b35c-6a158db7c430 error at line: 34
like image 381
membersound Avatar asked Aug 23 '12 11:08

membersound


2 Answers

This should work:

driver.findElement(By.LinkText("Users")).click();

By LinkText is possible

like image 83
Christoph Leiter Avatar answered Oct 13 '22 01:10

Christoph Leiter


XPath is one of the most exact ways to point the element.

Try this:

driver.findElement(By.XPath("//li[@class='li_class']/a")).Click();
like image 30
Ivan Reznikov Avatar answered Oct 12 '22 23:10

Ivan Reznikov