How to get the values of a particular row in a table in Selenium with python?


We can get the values of a particular row in a table in Selenium. The rows of a table are represented by <tr> tag in html code. The data in each row is enclosed with the <td> tag in html. Thus a <td> tag’s parent is always a <tr> tag.

The logic is get all the rows, we shall use the locator xpath and then use find_elements_by_xpath method. The list of rows will be returned. Next we need to compute the size of the list with the help of len method.

The <td> is not normally present in the first row of the table. In place of <td>, there is the <th> tag.

Syntax

driver.find_elements_by_xpath("//table/tbody/tr[2]/td")

The html code snippet of a table header is as described below −

Example

Coding Implementation to get the second row data.

from selenium import webdriver
#browser exposes an executable file
#Through Selenium test we will invoke the executable file which will then
#invoke actual browser
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# to maximize the browser window
driver.maximize_window()
#get method to launch the URL
driver.get("https://www.tutorialspoint.com/plsql/plsql_basic_syntax.htm")
#to refresh the browser
driver.refresh()
# identifying the from row2 having <td> tag
rwdata = driver.find_elements_by_xpath("//table/tbody/tr[2]/td")
# len method is used to get the size of that list
print(len(rwdata))
for r in rwdata:
   print(r.text)
#to close the browser
driver.close()

Updated on: 29-Jul-2020

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements