How to manipulate DOM in ubuntu command line without actually rendering the page on the GUI?












0















I've written a small JS snippet which clicks some buttons in the DOM of a certain target website in a loop.
To run this snippet, I open the target website in firefox. Then I paste this JS snippet in the console and let it do its job. PFA a sample snippet below.



Now the problem is that I want to automate this whole process to avoid actually opening firefox everyday. I would just like to write a cron to do this daily and everything should happen in background. I need to deploy this on a cloud linux VM without a GUI.



Any ideas about how I should proceed?
(I already know that I can use the website's backend API, thereby bypassing the entire DOM manipulation. But I would like to explore other options.)



P.S.: Sample of a code that I enter into the firefox's developer tools console:



func = setInterval(function () {
// Some button that I want to click.
document.evaluate("/html/body/div[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();

// TODO: A break condition (or not)
}, 6000);









share|improve this question



























    0















    I've written a small JS snippet which clicks some buttons in the DOM of a certain target website in a loop.
    To run this snippet, I open the target website in firefox. Then I paste this JS snippet in the console and let it do its job. PFA a sample snippet below.



    Now the problem is that I want to automate this whole process to avoid actually opening firefox everyday. I would just like to write a cron to do this daily and everything should happen in background. I need to deploy this on a cloud linux VM without a GUI.



    Any ideas about how I should proceed?
    (I already know that I can use the website's backend API, thereby bypassing the entire DOM manipulation. But I would like to explore other options.)



    P.S.: Sample of a code that I enter into the firefox's developer tools console:



    func = setInterval(function () {
    // Some button that I want to click.
    document.evaluate("/html/body/div[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();

    // TODO: A break condition (or not)
    }, 6000);









    share|improve this question

























      0












      0








      0








      I've written a small JS snippet which clicks some buttons in the DOM of a certain target website in a loop.
      To run this snippet, I open the target website in firefox. Then I paste this JS snippet in the console and let it do its job. PFA a sample snippet below.



      Now the problem is that I want to automate this whole process to avoid actually opening firefox everyday. I would just like to write a cron to do this daily and everything should happen in background. I need to deploy this on a cloud linux VM without a GUI.



      Any ideas about how I should proceed?
      (I already know that I can use the website's backend API, thereby bypassing the entire DOM manipulation. But I would like to explore other options.)



      P.S.: Sample of a code that I enter into the firefox's developer tools console:



      func = setInterval(function () {
      // Some button that I want to click.
      document.evaluate("/html/body/div[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();

      // TODO: A break condition (or not)
      }, 6000);









      share|improve this question














      I've written a small JS snippet which clicks some buttons in the DOM of a certain target website in a loop.
      To run this snippet, I open the target website in firefox. Then I paste this JS snippet in the console and let it do its job. PFA a sample snippet below.



      Now the problem is that I want to automate this whole process to avoid actually opening firefox everyday. I would just like to write a cron to do this daily and everything should happen in background. I need to deploy this on a cloud linux VM without a GUI.



      Any ideas about how I should proceed?
      (I already know that I can use the website's backend API, thereby bypassing the entire DOM manipulation. But I would like to explore other options.)



      P.S.: Sample of a code that I enter into the firefox's developer tools console:



      func = setInterval(function () {
      // Some button that I want to click.
      document.evaluate("/html/body/div[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();

      // TODO: A break condition (or not)
      }, 6000);






      linux firefox cron javascript firefox-developer-tools






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 27 '18 at 8:53









      Trevor TrackTrevor Track

      31




      31






















          1 Answer
          1






          active

          oldest

          votes


















          1














          I would advise you to abandon what you have been doing so far, and learn to use Selenium.



          Selenium is pretty much industry standard, when we are testing web apps, and allows you to automate (script) browser interaction.




          Selenium automates browsers. That's it! What you do with that power is
          entirely up to you. Primarily, it is for automating web applications
          for testing purposes, but is certainly not limited to just that.
          Boring web-based administration tasks can (and should!) be automated
          as well.



          Selenium has the support of some of the largest browser vendors who
          have taken (or are taking) steps to make Selenium a native part of
          their browser. It is also the core technology in countless other
          browser automation tools, APIs and frameworks.







          share|improve this answer























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "3"
            };
            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%2fsuperuser.com%2fquestions%2f1388060%2fhow-to-manipulate-dom-in-ubuntu-command-line-without-actually-rendering-the-page%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














            I would advise you to abandon what you have been doing so far, and learn to use Selenium.



            Selenium is pretty much industry standard, when we are testing web apps, and allows you to automate (script) browser interaction.




            Selenium automates browsers. That's it! What you do with that power is
            entirely up to you. Primarily, it is for automating web applications
            for testing purposes, but is certainly not limited to just that.
            Boring web-based administration tasks can (and should!) be automated
            as well.



            Selenium has the support of some of the largest browser vendors who
            have taken (or are taking) steps to make Selenium a native part of
            their browser. It is also the core technology in countless other
            browser automation tools, APIs and frameworks.







            share|improve this answer




























              1














              I would advise you to abandon what you have been doing so far, and learn to use Selenium.



              Selenium is pretty much industry standard, when we are testing web apps, and allows you to automate (script) browser interaction.




              Selenium automates browsers. That's it! What you do with that power is
              entirely up to you. Primarily, it is for automating web applications
              for testing purposes, but is certainly not limited to just that.
              Boring web-based administration tasks can (and should!) be automated
              as well.



              Selenium has the support of some of the largest browser vendors who
              have taken (or are taking) steps to make Selenium a native part of
              their browser. It is also the core technology in countless other
              browser automation tools, APIs and frameworks.







              share|improve this answer


























                1












                1








                1







                I would advise you to abandon what you have been doing so far, and learn to use Selenium.



                Selenium is pretty much industry standard, when we are testing web apps, and allows you to automate (script) browser interaction.




                Selenium automates browsers. That's it! What you do with that power is
                entirely up to you. Primarily, it is for automating web applications
                for testing purposes, but is certainly not limited to just that.
                Boring web-based administration tasks can (and should!) be automated
                as well.



                Selenium has the support of some of the largest browser vendors who
                have taken (or are taking) steps to make Selenium a native part of
                their browser. It is also the core technology in countless other
                browser automation tools, APIs and frameworks.







                share|improve this answer













                I would advise you to abandon what you have been doing so far, and learn to use Selenium.



                Selenium is pretty much industry standard, when we are testing web apps, and allows you to automate (script) browser interaction.




                Selenium automates browsers. That's it! What you do with that power is
                entirely up to you. Primarily, it is for automating web applications
                for testing purposes, but is certainly not limited to just that.
                Boring web-based administration tasks can (and should!) be automated
                as well.



                Selenium has the support of some of the largest browser vendors who
                have taken (or are taking) steps to make Selenium a native part of
                their browser. It is also the core technology in countless other
                browser automation tools, APIs and frameworks.








                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Dec 27 '18 at 9:17









                MawgMawg

                1,42453051




                1,42453051






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Super User!


                    • 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%2fsuperuser.com%2fquestions%2f1388060%2fhow-to-manipulate-dom-in-ubuntu-command-line-without-actually-rendering-the-page%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

                    Сан-Квентин

                    Алькесар

                    Josef Freinademetz