@@ -2723,50 +2723,50 @@ <h3 id="behave-gherkin-files">🐝 Behave-Gherkin files<a class="headerlink" hre
2723
2723
< div class ="highlight "> < pre > < span > </ span > < code > behave< span class ="w "> </ span > --steps-catalog
2724
2724
</ code > </ pre > </ div >
2725
2725
< 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 >
2727
2727
</ code > </ pre > </ div >
2728
2728
< 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 >
2731
2731
< 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 >
2740
2740
</ code > </ pre > </ div >
2741
2741
< 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 >
2742
2742
< 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 >
2744
2744
2745
2745
2746
2746
< 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 >
2748
2748
< span class ="n "> sb</ span > < span class ="o "> =</ span > < span class ="n "> context</ span > < span class ="o "> .</ span > < span class ="n "> sb</ span >
2749
2749
< 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 >
2750
2750
< span class ="n "> sb</ span > < span class ="o "> .</ span > < span class ="n "> clear_local_storage</ span > < span class ="p "> ()</ span >
2751
2751
2752
2752
2753
2753
< 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 >
2755
2755
< span class ="n "> sb</ span > < span class ="o "> =</ span > < span class ="n "> context</ span > < span class ="o "> .</ span > < span class ="n "> sb</ span >
2756
2756
< 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 >
2757
2757
< 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 >
2758
2758
2759
2759
2760
2760
< 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 >
2762
2762
< span class ="n "> sb</ span > < span class ="o "> =</ span > < span class ="n "> context</ span > < span class ="o "> .</ span > < span class ="n "> sb</ span >
2763
2763
< 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 >
2764
2764
< 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 >
2765
2765
< 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 >
2766
2766
2767
2767
2768
2768
< 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 >
2770
2770
< span class ="n "> sb</ span > < span class ="o "> =</ span > < span class ="n "> context</ span > < span class ="o "> .</ span > < span class ="n "> sb</ span >
2771
2771
< 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 >
2772
2772
</ code > </ pre > </ div >
0 commit comments