Функция Python (шаг салата) всегда возвращается True
Я работаю с селеном и салатом для тестирования в Python. У меня есть этот шаг для подсчета строк таблицы сотрудников
@step('I count employee table rows')
def i_count_emp_table_rows(step):
try:
elems = world.driver.find_elements_by_xpath(".//*[@id='myTable']/tr")
sum = 0
for item in elems:
sum= sum+1
return sum
except Exception, e:
print e
return None
И у меня есть еще один шаг: на этом шаге я хочу сохранить количество сотрудников в таблице сотрудников (используя шаг выше), прежде чем перейти на следующую страницу после нажатия кнопки "Добавить сотрудника".
@step('I click the Add Employee Button')
def i_click_the_add_employee_button(step):
world.prev_no_of_emp = step.given('I count employee table rows')
print "Right Now total rows in table: " + str(world.pre_no_of_emp)
done, world.driver = click_page_element(admin_add_employee_button_xpath, world.driver, wait=10)
Но самое смешное, что я всегда получаю "True" вместо списка. Я даже использовал len(), но безуспешно
Вот результат заявления о печати.
Прямо сейчас общее количество строк в таблице: True
1 ответ
Решение
Вы должны поместить счет в некоторую глобальную переменную. Смотрите ниже обновленные шаги.
@step('I count employee table rows')
def i_count_emp_table_rows(step):
try:
elems = world.driver.find_elements_by_xpath(".//*[@id='myTable']/tr")
world.count = len(elems)
except Exception, e:
print e.message
world.count = None
@step('I click the Add Employee Button')
def i_click_the_add_employee_button(step):
step.given('I count employee table rows')
print "Right Now total rows in table: " + str(world.count)
done, world.driver = click_page_element(admin_add_employee_button_xpath, world.driver, wait=10)