用于获取几页上元素列表的Python循环

时间:2017-07-28 00:23:04

标签: python list loops selenium

在我的应用程序中,我有一个用户表,但该表可以有超过1页的用户。 我想用Selenium Webdriver Python获取所有页面中所有用户的列表。 我需要一些算法,它将计算第一页中的用户然后点击第二页计数,直到页面完成,并返回整个列表。 我有一些想法,但不知道如何实现这一点, 如下所示:

def users(driver):
    list_users = []
    for list_users in range(n):
       #selector for click on second page
       num = num + 1
       #getting all users from 1 page
       driver.find_elements_by_css_selector(".even .odd")
       #click on second page until pages is exist
       driver.find_elements_by_link_text("%s" % num)
           until NoSuchElementException
     return list_users

我知道它甚至没有接近工作算法,但我试图解释我想要的东西

2 个答案:

答案 0 :(得分:0)

假设您只需要总人数并且您已登录...

ini_set('display_errors',1);error_reporting E_ALL;

产量" 1-50 of 53"这是来自这里看到的网站索引

enter image description here

告诉您列表中的总人数

然后获得总使用量

people = driver.find_element_by_xpath('//*
              [@id="frmList_ohrmListComponent"]/div[1]/ul/li[1]').text
print people

,它给你的值为53

------------- EDIT -----------------------

让用户循环浏览标签和页面

print people.split()[2]

答案 1 :(得分:0)

我们可以使用类似的东西吗?:

def users1(driver):
l=()
while l != NoSuchElementException:
    userslist = driver.find_elements_by_css_selector(".even .odd")
    for i in range(1, 50):
        l = driver.find_element_by_link_text("%s" % i).click()
    return userslist