Reputation: 300
In my application, I have a table with users but the table can have more than 1 page with users. I want to get a list with all users in all pages with Selenium Webdriver Python. I have test function which goes to the first page, gets a list with all users then goes to the second page gets a list of users and until the pages no longer exist:
def test_users1(driver):
login(driver, username="Admin", password="Password")
while True:
try:
#gets list of elements
userslist = driver.find_elements_by_css_selector(".even .odd")
#goes to second page, third...etc.
for i in range(1, 50):
driver.find_element_by_link_text("%s" % i).click()
except NoSuchElementException:
break
return (userslist)
I need to return split list with all users from all pages from my loop
Upvotes: 0
Views: 252
Reputation: 300
def users1(driver):
userslist = []
while True:
try:
#gets list of elements
userslist.extend(driver.find_elements_by_css_selector(".even .odd"))
#goes to second page, third...etc.
for i in range(1, 50):
driver.find_element_by_link_text("%s" % i).click()
except NoSuchElementException:
break
return userslist
def test_users1(driver):
login(driver, username="Admin", password="Password")
users = users1(driver)
assert len(users) == 63
Upvotes: 0
Reputation:
Try use list extend method
def test_users1(driver):
login(driver, username="Admin", password="Password")
userslist = []
while True:
try:
#gets list of elements
userslist.extend(driver.find_elements_by_css_selector(".even .odd"))
#goes to second page, third...etc.
for i in range(1, 50):
driver.find_element_by_link_text("%s" % i).click()
userslist.extend(driver.find_elements_by_css_selector(".even .odd"))
# Add new line here ^^^^
except NoSuchElementException:
break
return (userslist)
Upvotes: 0
Reputation: 300
def users1(driver):
userslist = []
while True:
try:
#gets list of elements
userslist.extend(driver.find_elements_by_css_selector("tbody tr"))
#goes to second page, third...etc.
for i in range(1, 50):
driver.find_element_by_link_text("%s" % i).click()
except NoSuchElementException:
break
return len(userslist)
def test_users1(driver):
login(driver, username="Admin", password="Password")
assert users1(driver) == 50
Upvotes: 0