【发布时间】:2017-08-05 18:25:45
【问题描述】:
在我的应用程序中,我有一个包含员工的表,但该表可以有超过 1 页的员工。我想检查是否添加了新员工(我创建的)我想使用 Selenium Webdriver Python 在表中检查该员工并单击它。整个想法是检查第一页,如果没有我正在寻找的 id 的员工,然后单击第二页,检查并单击员工,如果没有单击第三页等。我有一个功能可以在页面上运行1 比 1,但它不会检查我在该页面上需要的员工:
id = ()
def add_new_employee(driver, first_name, last_name):
driver.find_element_by_css_selector("#menu_pim_viewPimModule").click()
driver.find_element_by_css_selector("[name='btnAdd']").click()
driver.find_element_by_css_selector("#firstName").send_keys(first_name)
driver.find_element_by_css_selector("#lastName").send_keys(last_name)
driver.find_element_by_css_selector("#photofile").\
send_keys(os.path.abspath("cloud-computing-IT.jpg"))
global id
id = driver.find_element_by_css_selector("#employeeId").get_attribute("value")
def new_employee_added(driver):
global id
driver.find_element_by_css_selector("#menu_pim_viewPimModule").click()
el = len(driver.find_elements_by_link_text("%s" % id))
while el < 1:
try:
driver.find_element_by_link_text("%s" % id).click()
except NoSuchElementException:
try:
for i in range(1, 50):
driver.find_element_by_link_text("%s" % i).click()
except NoSuchElementException:
return False
def test_new_employee(driver, first_name="Patrick", last_name="Patterson"):
login(driver, username="Admin", password="Password")
add_new_employee(driver,first_name, last_name)
new_employee_added(driver)
logout(driver)
问题出在这个函数上:
def new_employee_added(driver):
global id
driver.find_element_by_css_selector("#menu_pim_viewPimModule").click()
el = len(driver.find_elements_by_link_text("%s" % id))
while el < 1:
try:
driver.find_element_by_link_text("%s" % id).click()
except NoSuchElementException:
try:
for i in range(1, 50):
driver.find_element_by_link_text("%s" % i).click()
except NoSuchElementException:
return False
循环应该尝试在第一页上查找元素,如果没有转到第二页并在那里检查,但似乎它尝试在第一页上查找然后运行该循环:
`for i in range(1, 50):
driver.find_element_by_link_text("%s" % i).click()`
点击页面不尝试查找员工
【问题讨论】:
标签: python loops selenium while-loop global-variables