fanyong920 / jvppeteer

Headless Chrome For Java (Java 爬虫)
Apache License 2.0
705 stars 158 forks source link

Page.waitForSelector() method can't work #5

Closed rqh656418510 closed 4 years ago

rqh656418510 commented 4 years ago
    @Test
    public void waitForSelector() throws IOException, InterruptedException, ExecutionException {
        String path = "/usr/bin/google-chrome-stable";
        ArrayList<String> arrayList = new ArrayList<>();
        LaunchOptions options = new OptionsBuilder().withArgs(arrayList).withHeadless(false).withExecutablePath(path).build();
        arrayList.add("--no-sandbox");
        arrayList.add("--disable-setuid-sandbox");

        WaitForSelectorOptions selectorOptions = new WaitForSelectorOptions();
        selectorOptions.setVisible(true);
        selectorOptions.setHidden(false);
        selectorOptions.setTimeout(60000);

        Browser browser = Puppeteer.launch(options);
        Page page = browser.newPage();
        page.goTo("https://blog.csdn.net/pythonw/article/details/80263428");

        String ex_string = "#mainBox > main > div.template-box > span:nth-child(3)";
        page.waitForSelector(ex_string, selectorOptions);
        page.hover(ex_string);
        System.in.read();
    }
java.lang.NullPointerException
    at com.ruiyun.jvppeteer.core.page.DOMWorld.waitForSelectorOrXPath(DOMWorld.java:423)
    at com.ruiyun.jvppeteer.core.page.DOMWorld.waitForSelector(DOMWorld.java:376)
    at com.ruiyun.jvppeteer.core.page.Frame.waitForSelector(Frame.java:176)
    at com.ruiyun.jvppeteer.core.page.Page.waitForSelector(Page.java:1894)
    at com.jvppeteer.example.Test.waitForSelector(Test.java:40)
fanyong920 commented 4 years ago

thanks for Test 我找到了问题所在。是因为WaitTask类存在缺陷。现在已经修复 image 麻烦重新测试一下

rqh656418510 commented 4 years ago

thanks, it can work normally!