【问题标题】:Python loop for getting list of elements on few pages用于在几页上获取元素列表的 Python 循环
【发布时间】:2017-07-28 00:23:04
【问题描述】:

在我的应用程序中,我有一个包含用户的表,但该表可以包含多个用户页面。 我想使用 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

我知道它甚至不适合工作算法,但我试图解释我想要什么

【问题讨论】:

  • 您能否提供指向您尝试访问的数据的链接?
  • @djk47463 link 登录:管理员密码:密码
  • 您需要用户名还是用户总数?
  • @djk47463 可能只是总量

标签: python list loops selenium


【解决方案1】:

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

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

产生“1-50 of 53”,来自此处看到的网站索引

这告诉您列表中的总人数

然后得到总使用量

print people.split()[2]

给你一个 53 的值

-------------编辑-----------

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

from math import ceil
pages = ceil(float(people.split()[2])/50)

users = []
for p in range(1,int(pages)+1):
    driver.execute_script('javascript:submitPage(%s)' % p) #change page
    for i in range(1,51):
        try:
            user = driver.find_element_by_xpath('//*
                           [@id="resultTable"]/tbody/tr[%s]/td[2]' % i) 
                                          #change tag____^
            users.append(user.text)
        except:
            break

print users

【讨论】:

  • 对不起,我解释的不清楚,我需要包含所有用户的列表
  • 行页中未解决的参考“人”问题 = ceil(float(people.split()[2])/50)
  • 你没有使用我提供的第一行代码,变量名为 people?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 2021-12-14
    • 2015-10-08
    • 1970-01-01
    • 2013-09-13
    • 2014-05-02
    • 1970-01-01
    • 2015-03-16
    相关资源
    最近更新 更多