簡體   English   中英

從“ while”循環中返回拆分列表,Python,Selenium

[英]Return splitted list from loop “while” Python, Selenium

在我的應用程序中,我有一個包含用戶的表,但是該表可以包含多個用戶頁面。 我想使用Selenium Webdriver Python獲取所有頁面中所有用戶的列表。 我有測試功能,該功能轉到第一頁,獲取所有用戶的列表,然后轉到第二頁,獲取用戶列表,直到頁面不再存在:

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)

我需要返回循環中所有頁面的所有用戶的拆分列表

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

嘗試使用列表擴展方法

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)
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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM