2017-07-22 41 views
0

在我的應用程序中,我有一個用戶表。在我的測試中,我想添加新用戶,然後檢查是否添加了用戶,但該表可以有多個頁面,當我查看該元素時,我可以在第一頁上找到它。 這裏是我的代碼:硒蟒在幾頁找到元素

def test_new_user(driver, username='jared144'): 
login(driver, username="Admin", password="Password") 
# add new user 
add_new_user(driver, username) 
#check if the new user added 
assert is_element_present(driver, By.LINK_TEXT, "%s" % username) 

def add_new_user(driver, username): 
driver.find_element_by_css_selector("[id=btnAdd]").click() 
driver.find_element_by_css_selector("[id=systemUser_employeeName_empName]").send_keys("Adelia Foxy") 
driver.find_element_by_css_selector("[id=systemUser_userName]").send_keys("%s" % username) 
driver.find_element_by_css_selector("[id=systemUser_password]").send_keys("12345678") 
driver.find_element_by_css_selector("[id=systemUser_confirmPassword]").send_keys("12345678") 
driver.find_element_by_css_selector("[id=btnSave]").click() 

def is_element_present(driver, how, what): 
try: 
    driver.find_element(by=how, value=what) 
except NoSuchElementException as e: 
    return False 
return True 

def login(driver, username, password): 
driver.get("http://hrm.seleniumminutes.com/") 
driver.find_element_by_css_selector("[name=txtUsername]").send_keys(username) 
driver.find_element_by_css_selector("[name=txtPassword]").send_keys(password) 
driver.find_element_by_css_selector("[name=Submit]").click() 
driver.find_element_by_css_selector("[id=menu_admin_viewAdminModule]").click() 

我有一個想法如何做到這一點,是這樣的:

if NoSuchElementException 
    find_element_by().click() #click second page 

但我不知道該如何實現這個

+0

縮進你的代碼 –

+0

和你的問題是,你需要滾動 –

+0

這不是滾動,我想檢查元素當前的第一頁在那裏,如果沒有點擊第二頁,檢查那裏,如果沒有在第二頁面然後錯誤 –

回答

0

在你的異常,告訴程序點擊next page元素(你沒有指出你是如何找到它的)。如果您的問題是如何找到可以在點擊後前往下一頁的元素,請打開Chrome或FF並按F12鍵調出調試器,然後搜索頁面上的元素,獲取其ID,NAME ,XPATH(或其他唯一標識符),然後在顯示時單擊它。所以這樣的事情可能會起作用。

def is_element_present(driver, how, what): 
    try: 
     driver.find_element(by=how, value=what) 
     return True 
    except NoSuchElementException as e: 
     try: 
      driver.find_element(by=`xpath`, value=`next page xpath`).click() 
      return True 
     except NoSuchElementException as nse: 
      return False