How to extract the page source through Javascript executor?












0















import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;

public class oo {
public static void main(String args) {

System.setProperty("webdriver.chrome.driver","D:\Java\Lib\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.navigate().to("https://google.com");

JavascriptExecutor js = (JavascriptExecutor) driver;
Object s = js.executeScript("return document.body.innerHTML;",null).toString();

System.out.println(s);
driver.close();
}
}


Above code returns nullPointerException.



Exception in thread "main" java.lang.NullPointerException at java.util.Arrays.stream(Unknown Source) at java.util.stream.Stream.of(Unknown Source) at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:484) at oo.main(oo.java:25)


When I remove optional object parameter, it goes compilation error.



Code:



  JavascriptExecutor js = (JavascriptExecutor) driver;  
Object s = js.executeScript("return document.body.innerHTML;").toString();


Error:



Exception in thread "main" java.lang.Error: Unresolved compilation problem:     The method executeScript(String, Object) in the type JavascriptExecutor is not applicable for the arguments (String)


Using Selenium-server-standalone-3.141.59.jar










share|improve this question




















  • 1





    When I remove optional object parameter, it goes compilation error. -> if it stops compiling, the parameter is not optional

    – Stultuske
    Nov 21 '18 at 12:09











  • What's the meaning of s Object? It will be propably always null.

    – pburgr
    Nov 21 '18 at 12:18













  • do you really need to use an external API? I mean, with Java 8, there is Nashorn

    – AKSW
    Nov 21 '18 at 12:29






  • 1





    did you try new Object{} as second param? The docs say "may be empty" which doesn't mean "may be null"

    – AKSW
    Nov 21 '18 at 12:31








  • 1





    The NullPointerException is because you are sending null as args. Did you try without it?

    – Guy
    Nov 21 '18 at 12:50
















0















import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;

public class oo {
public static void main(String args) {

System.setProperty("webdriver.chrome.driver","D:\Java\Lib\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.navigate().to("https://google.com");

JavascriptExecutor js = (JavascriptExecutor) driver;
Object s = js.executeScript("return document.body.innerHTML;",null).toString();

System.out.println(s);
driver.close();
}
}


Above code returns nullPointerException.



Exception in thread "main" java.lang.NullPointerException at java.util.Arrays.stream(Unknown Source) at java.util.stream.Stream.of(Unknown Source) at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:484) at oo.main(oo.java:25)


When I remove optional object parameter, it goes compilation error.



Code:



  JavascriptExecutor js = (JavascriptExecutor) driver;  
Object s = js.executeScript("return document.body.innerHTML;").toString();


Error:



Exception in thread "main" java.lang.Error: Unresolved compilation problem:     The method executeScript(String, Object) in the type JavascriptExecutor is not applicable for the arguments (String)


Using Selenium-server-standalone-3.141.59.jar










share|improve this question




















  • 1





    When I remove optional object parameter, it goes compilation error. -> if it stops compiling, the parameter is not optional

    – Stultuske
    Nov 21 '18 at 12:09











  • What's the meaning of s Object? It will be propably always null.

    – pburgr
    Nov 21 '18 at 12:18













  • do you really need to use an external API? I mean, with Java 8, there is Nashorn

    – AKSW
    Nov 21 '18 at 12:29






  • 1





    did you try new Object{} as second param? The docs say "may be empty" which doesn't mean "may be null"

    – AKSW
    Nov 21 '18 at 12:31








  • 1





    The NullPointerException is because you are sending null as args. Did you try without it?

    – Guy
    Nov 21 '18 at 12:50














0












0








0








import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;

public class oo {
public static void main(String args) {

System.setProperty("webdriver.chrome.driver","D:\Java\Lib\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.navigate().to("https://google.com");

JavascriptExecutor js = (JavascriptExecutor) driver;
Object s = js.executeScript("return document.body.innerHTML;",null).toString();

System.out.println(s);
driver.close();
}
}


Above code returns nullPointerException.



Exception in thread "main" java.lang.NullPointerException at java.util.Arrays.stream(Unknown Source) at java.util.stream.Stream.of(Unknown Source) at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:484) at oo.main(oo.java:25)


When I remove optional object parameter, it goes compilation error.



Code:



  JavascriptExecutor js = (JavascriptExecutor) driver;  
Object s = js.executeScript("return document.body.innerHTML;").toString();


Error:



Exception in thread "main" java.lang.Error: Unresolved compilation problem:     The method executeScript(String, Object) in the type JavascriptExecutor is not applicable for the arguments (String)


Using Selenium-server-standalone-3.141.59.jar










share|improve this question
















import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;

public class oo {
public static void main(String args) {

System.setProperty("webdriver.chrome.driver","D:\Java\Lib\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.navigate().to("https://google.com");

JavascriptExecutor js = (JavascriptExecutor) driver;
Object s = js.executeScript("return document.body.innerHTML;",null).toString();

System.out.println(s);
driver.close();
}
}


Above code returns nullPointerException.



Exception in thread "main" java.lang.NullPointerException at java.util.Arrays.stream(Unknown Source) at java.util.stream.Stream.of(Unknown Source) at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:484) at oo.main(oo.java:25)


When I remove optional object parameter, it goes compilation error.



Code:



  JavascriptExecutor js = (JavascriptExecutor) driver;  
Object s = js.executeScript("return document.body.innerHTML;").toString();


Error:



Exception in thread "main" java.lang.Error: Unresolved compilation problem:     The method executeScript(String, Object) in the type JavascriptExecutor is not applicable for the arguments (String)


Using Selenium-server-standalone-3.141.59.jar







javascript java selenium selenium-webdriver pagesource






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 '18 at 14:15









DebanjanB

42k84080




42k84080










asked Nov 21 '18 at 12:07









AmreshAmresh

609




609








  • 1





    When I remove optional object parameter, it goes compilation error. -> if it stops compiling, the parameter is not optional

    – Stultuske
    Nov 21 '18 at 12:09











  • What's the meaning of s Object? It will be propably always null.

    – pburgr
    Nov 21 '18 at 12:18













  • do you really need to use an external API? I mean, with Java 8, there is Nashorn

    – AKSW
    Nov 21 '18 at 12:29






  • 1





    did you try new Object{} as second param? The docs say "may be empty" which doesn't mean "may be null"

    – AKSW
    Nov 21 '18 at 12:31








  • 1





    The NullPointerException is because you are sending null as args. Did you try without it?

    – Guy
    Nov 21 '18 at 12:50














  • 1





    When I remove optional object parameter, it goes compilation error. -> if it stops compiling, the parameter is not optional

    – Stultuske
    Nov 21 '18 at 12:09











  • What's the meaning of s Object? It will be propably always null.

    – pburgr
    Nov 21 '18 at 12:18













  • do you really need to use an external API? I mean, with Java 8, there is Nashorn

    – AKSW
    Nov 21 '18 at 12:29






  • 1





    did you try new Object{} as second param? The docs say "may be empty" which doesn't mean "may be null"

    – AKSW
    Nov 21 '18 at 12:31








  • 1





    The NullPointerException is because you are sending null as args. Did you try without it?

    – Guy
    Nov 21 '18 at 12:50








1




1





When I remove optional object parameter, it goes compilation error. -> if it stops compiling, the parameter is not optional

– Stultuske
Nov 21 '18 at 12:09





When I remove optional object parameter, it goes compilation error. -> if it stops compiling, the parameter is not optional

– Stultuske
Nov 21 '18 at 12:09













What's the meaning of s Object? It will be propably always null.

– pburgr
Nov 21 '18 at 12:18







What's the meaning of s Object? It will be propably always null.

– pburgr
Nov 21 '18 at 12:18















do you really need to use an external API? I mean, with Java 8, there is Nashorn

– AKSW
Nov 21 '18 at 12:29





do you really need to use an external API? I mean, with Java 8, there is Nashorn

– AKSW
Nov 21 '18 at 12:29




1




1





did you try new Object{} as second param? The docs say "may be empty" which doesn't mean "may be null"

– AKSW
Nov 21 '18 at 12:31







did you try new Object{} as second param? The docs say "may be empty" which doesn't mean "may be null"

– AKSW
Nov 21 '18 at 12:31






1




1





The NullPointerException is because you are sending null as args. Did you try without it?

– Guy
Nov 21 '18 at 12:50





The NullPointerException is because you are sending null as args. Did you try without it?

– Guy
Nov 21 '18 at 12:50












1 Answer
1






active

oldest

votes


















0














To extract and print the Page Source through JavascriptExecutor you can use the following (Java based) solution:





  • Syntax:



    String page_source = ((JavascriptExecutor)driver).executeScript("return document.documentElement.innerHTML;").toString();
    System.out.println(page_source);



Note: You need to induce a waiter for the page to load completely before extracting the Page Source.






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%2f53411703%2fhow-to-extract-the-page-source-through-javascript-executor%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









    0














    To extract and print the Page Source through JavascriptExecutor you can use the following (Java based) solution:





    • Syntax:



      String page_source = ((JavascriptExecutor)driver).executeScript("return document.documentElement.innerHTML;").toString();
      System.out.println(page_source);



    Note: You need to induce a waiter for the page to load completely before extracting the Page Source.






    share|improve this answer






























      0














      To extract and print the Page Source through JavascriptExecutor you can use the following (Java based) solution:





      • Syntax:



        String page_source = ((JavascriptExecutor)driver).executeScript("return document.documentElement.innerHTML;").toString();
        System.out.println(page_source);



      Note: You need to induce a waiter for the page to load completely before extracting the Page Source.






      share|improve this answer




























        0












        0








        0







        To extract and print the Page Source through JavascriptExecutor you can use the following (Java based) solution:





        • Syntax:



          String page_source = ((JavascriptExecutor)driver).executeScript("return document.documentElement.innerHTML;").toString();
          System.out.println(page_source);



        Note: You need to induce a waiter for the page to load completely before extracting the Page Source.






        share|improve this answer















        To extract and print the Page Source through JavascriptExecutor you can use the following (Java based) solution:





        • Syntax:



          String page_source = ((JavascriptExecutor)driver).executeScript("return document.documentElement.innerHTML;").toString();
          System.out.println(page_source);



        Note: You need to induce a waiter for the page to load completely before extracting the Page Source.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 21 '18 at 14:41

























        answered Nov 21 '18 at 14:16









        DebanjanBDebanjanB

        42k84080




        42k84080
































            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%2f53411703%2fhow-to-extract-the-page-source-through-javascript-executor%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

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            Npm cannot find a required file even through it is in the searched directory