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("xx@est.com")
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
以上,实现登录自动化