Multiple ways of performing an action with the page object patternPage Object pattern and alternativesHow to submit a form in Geb (WebDriver) that has no submit buttonScreen recording while testingReturn a page reference as result of action on page?Page Object design pattern best practice in SeleniumCheck title of multiple pages in SeleniumMultiple browsers and the Page Object patternAcceptance testing focused on outgoing http requestsChaining page objects, or multiple possible page objects as a result of a single actionProtractor-cucumber database

Count the number of triangles

Notice period 60 days but I need to join in 45 days

Create a list of snaking numbers under 50,000

How can I reply to coworkers who accuse me of automating people out of work?

Pen test results for web application include a file from a forbidden directory that is not even used or referenced

Why did Lucius make a deal out of Buckbeak hurting Draco but not about Draco being turned into a ferret?

How do I portray irrational anger in first person?

Why doesn't Starship have four landing legs?

Why does Sauron not permit his followers to use his name?

Why does this London Underground poster from 1924 have a Star of David atop a Christmas tree?

Why can't I identify major and minor chords?

What is the difference between ?int $number and int $number = null?

I feel cheated on by my new employer, does this sound right?

How can I fix cracks between the bathtub and the wall surround?

Convert shapefille to KML

Is there a word or phrase that means "use other people's wifi or Internet service without consent"?

What does "-1" represent in the value range for unsigned int and signed int?

Is the Amazon rainforest the "world's lungs"?

How do Barton (Hawkeye/Ronin) and Romanov (Black Widow) end up on the Benatar on Morag in 2014?

Heat output from a 200W electric radiator?

What is the following VRP?

Is there an in-universe explanation given to the senior Imperial Navy Officers as to why Darth Vader serves Emperor Palpatine?

What's the point of fighting monsters in Zelda BotW?

Don't look at what I did there



Multiple ways of performing an action with the page object pattern


Page Object pattern and alternativesHow to submit a form in Geb (WebDriver) that has no submit buttonScreen recording while testingReturn a page reference as result of action on page?Page Object design pattern best practice in SeleniumCheck title of multiple pages in SeleniumMultiple browsers and the Page Object patternAcceptance testing focused on outgoing http requestsChaining page objects, or multiple possible page objects as a result of a single actionProtractor-cucumber database






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















When implementing the page object pattern, the recommendation that I've seen is that actions should be high-level, instead of individual UI actions:



For example:



page.search(query)


Rather than:



page.enterSearchBarText(query)
page.clickSearchButton()


However, the search should also execute when the user hits Enter instead of clicking the search button.



So search could also be:



page.enterSearchBarText(query)
page.pressEnter()


If I want to cover both in my tests, what is a conventional way of implementing this? I thought perhaps



search(query, method)


where method could be one of enum SearchButton, Enter










share|improve this question
























  • I think the way you have suggested is the way I would do it. I try to favor enums over passing static strings.

    – JeffC
    Mar 28 at 14:54


















1















When implementing the page object pattern, the recommendation that I've seen is that actions should be high-level, instead of individual UI actions:



For example:



page.search(query)


Rather than:



page.enterSearchBarText(query)
page.clickSearchButton()


However, the search should also execute when the user hits Enter instead of clicking the search button.



So search could also be:



page.enterSearchBarText(query)
page.pressEnter()


If I want to cover both in my tests, what is a conventional way of implementing this? I thought perhaps



search(query, method)


where method could be one of enum SearchButton, Enter










share|improve this question
























  • I think the way you have suggested is the way I would do it. I try to favor enums over passing static strings.

    – JeffC
    Mar 28 at 14:54














1












1








1








When implementing the page object pattern, the recommendation that I've seen is that actions should be high-level, instead of individual UI actions:



For example:



page.search(query)


Rather than:



page.enterSearchBarText(query)
page.clickSearchButton()


However, the search should also execute when the user hits Enter instead of clicking the search button.



So search could also be:



page.enterSearchBarText(query)
page.pressEnter()


If I want to cover both in my tests, what is a conventional way of implementing this? I thought perhaps



search(query, method)


where method could be one of enum SearchButton, Enter










share|improve this question














When implementing the page object pattern, the recommendation that I've seen is that actions should be high-level, instead of individual UI actions:



For example:



page.search(query)


Rather than:



page.enterSearchBarText(query)
page.clickSearchButton()


However, the search should also execute when the user hits Enter instead of clicking the search button.



So search could also be:



page.enterSearchBarText(query)
page.pressEnter()


If I want to cover both in my tests, what is a conventional way of implementing this? I thought perhaps



search(query, method)


where method could be one of enum SearchButton, Enter







selenium testing automated-tests






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 27 at 21:59









xlixli

8135 silver badges25 bronze badges




8135 silver badges25 bronze badges















  • I think the way you have suggested is the way I would do it. I try to favor enums over passing static strings.

    – JeffC
    Mar 28 at 14:54


















  • I think the way you have suggested is the way I would do it. I try to favor enums over passing static strings.

    – JeffC
    Mar 28 at 14:54

















I think the way you have suggested is the way I would do it. I try to favor enums over passing static strings.

– JeffC
Mar 28 at 14:54






I think the way you have suggested is the way I would do it. I try to favor enums over passing static strings.

– JeffC
Mar 28 at 14:54













1 Answer
1






active

oldest

votes


















1















You can create 2 methods in that class



public void dataSearchBySearchButton(String query)

page.enterSearchBarText(query);
page.clickSearchButton();




And



public void dataSearchByEnterKey(String query)


page.enterSearchBarText(query);
page.pressEnter();




and you can call the relevant method which require in your test






share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55387123%2fmultiple-ways-of-performing-an-action-with-the-page-object-pattern%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1















    You can create 2 methods in that class



    public void dataSearchBySearchButton(String query)

    page.enterSearchBarText(query);
    page.clickSearchButton();




    And



    public void dataSearchByEnterKey(String query)


    page.enterSearchBarText(query);
    page.pressEnter();




    and you can call the relevant method which require in your test






    share|improve this answer





























      1















      You can create 2 methods in that class



      public void dataSearchBySearchButton(String query)

      page.enterSearchBarText(query);
      page.clickSearchButton();




      And



      public void dataSearchByEnterKey(String query)


      page.enterSearchBarText(query);
      page.pressEnter();




      and you can call the relevant method which require in your test






      share|improve this answer



























        1














        1










        1









        You can create 2 methods in that class



        public void dataSearchBySearchButton(String query)

        page.enterSearchBarText(query);
        page.clickSearchButton();




        And



        public void dataSearchByEnterKey(String query)


        page.enterSearchBarText(query);
        page.pressEnter();




        and you can call the relevant method which require in your test






        share|improve this answer













        You can create 2 methods in that class



        public void dataSearchBySearchButton(String query)

        page.enterSearchBarText(query);
        page.clickSearchButton();




        And



        public void dataSearchByEnterKey(String query)


        page.enterSearchBarText(query);
        page.pressEnter();




        and you can call the relevant method which require in your test







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 28 at 5:45









        NarendraRNarendraR

        4,3336 gold badges24 silver badges53 bronze badges




        4,3336 gold badges24 silver badges53 bronze badges





















            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.







            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.



















            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55387123%2fmultiple-ways-of-performing-an-action-with-the-page-object-pattern%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

            용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

            155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해