@@ -2723,50 +2723,50 @@ <h3 id="behave-gherkin-files">🐝 Behave-Gherkin files<a class="headerlink" hre
27232723< div class ="highlight "> < pre > < span > </ span > < code > behave< span class ="w "> </ span > --steps-catalog
27242724</ code > </ pre > </ div >
27252725< p > 🐝 SeleniumBase includes several pre-made Behave steps, which you can use by creating a Python file with the following line in your < code > features/steps/</ code > directory:</ p >
2726- < div class ="highlight "> < pre > < span > </ span > < code > < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave</ span > < span class ="kn "> import</ span > < span class ="n "> steps</ span > < span class ="c1 "> # noqa</ span >
2726+ < div class ="highlight "> < pre > < span > </ span > < code > < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> steps</ span > < span class ="c1 "> # noqa</ span >
27272727</ code > </ pre > </ div >
27282728< p > 🐝 Inside your < code > features/environment.py</ code > file, you should have the following:</ p >
2729- < div class ="highlight "> < pre > < span > </ span > < code > < span class ="kn "> from</ span > < span class ="nn "> seleniumbase</ span > < span class ="kn "> import</ span > < span class ="n "> BaseCase</ span >
2730- < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave</ span > < span class ="kn "> import</ span > < span class ="n "> behave_sb</ span >
2729+ < div class ="highlight "> < pre > < span > </ span > < code > < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> BaseCase</ span >
2730+ < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> behave_sb</ span >
27312731< span class ="n "> behave_sb</ span > < span class ="o "> .</ span > < span class ="n "> set_base_class</ span > < span class ="p "> (</ span > < span class ="n "> BaseCase</ span > < span class ="p "> )</ span > < span class ="c1 "> # Accepts a BaseCase subclass</ span >
2732- < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class ="kn "> import</ span > < span class ="n "> before_all</ span > < span class ="c1 "> # noqa</ span >
2733- < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class ="kn "> import</ span > < span class ="n "> before_feature</ span > < span class ="c1 "> # noqa</ span >
2734- < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class ="kn "> import</ span > < span class ="n "> before_scenario</ span > < span class ="c1 "> # noqa</ span >
2735- < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class ="kn "> import</ span > < span class ="n "> before_step</ span > < span class ="c1 "> # noqa</ span >
2736- < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class ="kn "> import</ span > < span class ="n "> after_step</ span > < span class ="c1 "> # noqa</ span >
2737- < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class ="kn "> import</ span > < span class ="n "> after_scenario</ span > < span class ="c1 "> # noqa</ span >
2738- < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class ="kn "> import</ span > < span class ="n "> after_feature</ span > < span class ="c1 "> # noqa</ span >
2739- < span class ="kn "> from</ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class ="kn "> import</ span > < span class ="n "> after_all</ span > < span class ="c1 "> # noqa</ span >
2732+ < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> before_all</ span > < span class ="c1 "> # noqa</ span >
2733+ < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> before_feature</ span > < span class ="c1 "> # noqa</ span >
2734+ < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> before_scenario</ span > < span class ="c1 "> # noqa</ span >
2735+ < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> before_step</ span > < span class ="c1 "> # noqa</ span >
2736+ < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> after_step</ span > < span class ="c1 "> # noqa</ span >
2737+ < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> after_scenario</ span > < span class ="c1 "> # noqa</ span >
2738+ < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> after_feature</ span > < span class ="c1 "> # noqa</ span >
2739+ < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> seleniumbase.behave.behave_sb</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> after_all</ span > < span class ="c1 "> # noqa</ span >
27402740</ code > </ pre > </ div >
27412741< p > 🐝 If you've already created a subclass of < code > BaseCase</ code > with custom methods, you can swap < code > BaseCase</ code > in with your own subclass, which will allow you to easily use your own custom methods in your Behave step definitions.</ p >
27422742< p > 🐝 Here's an example Python file in the < code > features/steps/</ code > folder:</ p >
2743- < div class ="highlight "> < pre > < span > </ span > < code > < span class ="kn "> from</ span > < span class ="nn "> behave</ span > < span class ="kn "> import</ span > < span class ="n "> step</ span >
2743+ < div class ="highlight "> < pre > < span > </ span > < code > < span class ="kn "> from</ span > < span class =" w " > </ span > < span class ="nn "> behave</ span > < span class =" w " > </ span > < span class ="kn "> import</ span > < span class ="n "> step</ span >
27442744
27452745
27462746< span class ="nd "> @step</ span > < span class ="p "> (</ span > < span class ="s2 "> "Open the Swag Labs Login Page"</ span > < span class ="p "> )</ span >
2747- < span class ="k "> def</ span > < span class ="nf "> go_to_swag_labs</ span > < span class ="p "> (</ span > < span class ="n "> context</ span > < span class ="p "> ):</ span >
2747+ < span class ="k "> def</ span > < span class =" w " > </ span > < span class ="nf "> go_to_swag_labs</ span > < span class ="p "> (</ span > < span class ="n "> context</ span > < span class ="p "> ):</ span >
27482748 < span class ="n "> sb</ span > < span class ="o "> =</ span > < span class ="n "> context</ span > < span class ="o "> .</ span > < span class ="n "> sb</ span >
27492749 < span class ="n "> sb</ span > < span class ="o "> .</ span > < span class ="n "> open</ span > < span class ="p "> (</ span > < span class ="s2 "> "https://www.saucedemo.com"</ span > < span class ="p "> )</ span >
27502750 < span class ="n "> sb</ span > < span class ="o "> .</ span > < span class ="n "> clear_local_storage</ span > < span class ="p "> ()</ span >
27512751
27522752
27532753< span class ="nd "> @step</ span > < span class ="p "> (</ span > < span class ="s2 "> "Login to Swag Labs with </ span > < span class ="si "> {user}</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
2754- < span class ="k "> def</ span > < span class ="nf "> login_to_swag_labs</ span > < span class ="p "> (</ span > < span class ="n "> context</ span > < span class ="p "> ,</ span > < span class ="n "> user</ span > < span class ="p "> ):</ span >
2754+ < span class ="k "> def</ span > < span class =" w " > </ span > < span class ="nf "> login_to_swag_labs</ span > < span class ="p "> (</ span > < span class ="n "> context</ span > < span class ="p "> ,</ span > < span class ="n "> user</ span > < span class ="p "> ):</ span >
27552755 < span class ="n "> sb</ span > < span class ="o "> =</ span > < span class ="n "> context</ span > < span class ="o "> .</ span > < span class ="n "> sb</ span >
27562756 < span class ="n "> sb</ span > < span class ="o "> .</ span > < span class ="n "> type</ span > < span class ="p "> (</ span > < span class ="s2 "> "#user-name"</ span > < span class ="p "> ,</ span > < span class ="n "> user</ span > < span class ="p "> )</ span >
27572757 < span class ="n "> sb</ span > < span class ="o "> .</ span > < span class ="n "> type</ span > < span class ="p "> (</ span > < span class ="s2 "> "#password"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "secret_sauce</ span > < span class ="se "> \n</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
27582758
27592759
27602760< span class ="nd "> @step</ span > < span class ="p "> (</ span > < span class ="s2 "> "Verify that the current user is logged in"</ span > < span class ="p "> )</ span >
2761- < span class ="k "> def</ span > < span class ="nf "> verify_logged_in</ span > < span class ="p "> (</ span > < span class ="n "> context</ span > < span class ="p "> ):</ span >
2761+ < span class ="k "> def</ span > < span class =" w " > </ span > < span class ="nf "> verify_logged_in</ span > < span class ="p "> (</ span > < span class ="n "> context</ span > < span class ="p "> ):</ span >
27622762 < span class ="n "> sb</ span > < span class ="o "> =</ span > < span class ="n "> context</ span > < span class ="o "> .</ span > < span class ="n "> sb</ span >
27632763 < span class ="n "> sb</ span > < span class ="o "> .</ span > < span class ="n "> assert_element</ span > < span class ="p "> (</ span > < span class ="s2 "> "#header_container"</ span > < span class ="p "> )</ span >
27642764 < span class ="n "> sb</ span > < span class ="o "> .</ span > < span class ="n "> assert_element</ span > < span class ="p "> (</ span > < span class ="s2 "> "#react-burger-menu-btn"</ span > < span class ="p "> )</ span >
27652765 < span class ="n "> sb</ span > < span class ="o "> .</ span > < span class ="n "> assert_element</ span > < span class ="p "> (</ span > < span class ="s2 "> "#shopping_cart_container"</ span > < span class ="p "> )</ span >
27662766
27672767
27682768< span class ="nd "> @step</ span > < span class ="p "> (</ span > < span class ="s1 "> 'Add "</ span > < span class ="si "> {item}</ span > < span class ="s1 "> " to cart'</ span > < span class ="p "> )</ span >
2769- < span class ="k "> def</ span > < span class ="nf "> add_item_to_cart</ span > < span class ="p "> (</ span > < span class ="n "> context</ span > < span class ="p "> ,</ span > < span class ="n "> item</ span > < span class ="p "> ):</ span >
2769+ < span class ="k "> def</ span > < span class =" w " > </ span > < span class ="nf "> add_item_to_cart</ span > < span class ="p "> (</ span > < span class ="n "> context</ span > < span class ="p "> ,</ span > < span class ="n "> item</ span > < span class ="p "> ):</ span >
27702770 < span class ="n "> sb</ span > < span class ="o "> =</ span > < span class ="n "> context</ span > < span class ="o "> .</ span > < span class ="n "> sb</ span >
27712771 < span class ="n "> sb</ span > < span class ="o "> .</ span > < span class ="n "> click</ span > < span class ="p "> (</ span > < span class ="s1 "> 'div.inventory_item:contains("</ span > < span class ="si "> %s</ span > < span class ="s1 "> ") button[name*="add"]'</ span > < span class ="o "> %</ span > < span class ="n "> item</ span > < span class ="p "> )</ span >
27722772</ code > </ pre > </ div >
0 commit comments