2017-07-29 14 views
0

私のアプリケーションでは、ユーザーがいるテーブルがありますが、テーブルはユーザーが1ページ以上あります。 Selenium Webdriver Pythonを使用しているすべてのページのすべてのユーザーとリストを取得したいと考えています。"while" Python、Seleniumのループから分割リストを返します

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) 

は私が持つスプリットリストを返す必要があります:私は、すべてのユーザーのリストを取得する2番目のページに行くユーザーのリストを取得し、ページがもはや存在しなくなるまで、最初のページに移動し、テスト機能を持っています私のループ

+0

を拡張 'USERSLIST + =ドライバを追加します。もし、ドライバ名.find_element_by_link_text( "%s"%i).click() 'がユーザのリストを返す場合は、 –

答えて

0

てみ使用リストからすべてのページから、すべてのユーザーが方法

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

はこれかもしれません: ' assert(len(userslist) == YOUINT)、「間違ったユーザーリスト」「 –

+0

[link](https://www.dropbox.com/s/5b274w61sokdeqv/Screenshot%202017-07-29%2016.17.28.png?dl=0) I私はなぜそれが私を返すのかわからないサイズのタイプはintではない –

0
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 
+0

私はそれを試してくださいagan –

+0

@Bearブラウン私は決定を見つけたので、助けてくれてありがとう。 https://stackoverflow.com/a/45394732/6939940 –

+0

少し助けてうれしいです。 –

1
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 
関連する問題