00 前言
BDD,即行为驱动开发,用自然语言描述编程。
程序为一个简单的示例:站点的登录
环境:Python 3.5
目录及文件结构:Feature:--steps----login.py--environment.py--login.feature
01 代码
1.1 login.feature
1.2 environment.py
# -*- utf-8 -*- from selenium import webdriver def before_all(context): context.iatc_url = 'http://iatc.soft.rz/portal/' context.driver = webdriver.Firefox() def after_all(context): context.driver.quit()
1.3 logins.py
# This Python file uses the following encoding: utf-8 #../logins.py from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions from selenium.webdriver.common.by import By @Given('I open url') def step_impl(context): context.driver.get(context.iatc_url) @when('I input username & password, press login') def step_impl(context): context.ele_input_id = context.driver.find_element_by_id("txt_uid") context.ele_input_id.send_keys("[email protected]") context.ele_input_pw = context.driver.find_element_by_id("txt_pwd") context.ele_input_pw.send_keys("Win.12345") context.ele_btn = context.driver.find_element_by_id("btnLogin") context.ele_btn.click() @Then('find login username') def step_impl(context): context.sign_link = WebDriverWait(context.driver, 60).until( expected_conditions.text_to_be_present_in_element(('xpath', ".//*[@id='workspace_info']/span[4]"), "Powered By")) context.ele_results = context.driver.find_element_by_xpath(".//*[@id='workspace_info']/span[4]") context.expected_results = 'Powered' print("ele_results: ", context.ele_results.text) context.driver.implicitly_wait(10) if context.expected_results in context.ele_results.text: assert True else: assert False以上,实现登录自动化