簡體   English   中英

Selenium Python在幾頁上找到元素

[英]Selenium Python find element on few pages

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

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

但是我不知道如何實現

在您的例外情況下,告訴程序單擊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

暫無
暫無

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

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