selenium 如何阅读一个div详细信息与/不删除网页,这是不是出现在源代码中的Java?

oxosxuxt  于 2022-11-10  发布在  Java
关注(0)|答案(1)|浏览(152)

我有一个想要在Edge store上阅读已发布扩展的版本的用例。任何已发布扩展的链接如下->https://microsoftedge.microsoft.com/addons/detail/incognito-adblocker/efpgcmfgkpmogadebodiegjleafcmdcb
现在我面临的问题是,版本所在的范围。(span ID为“versionLabel”),有一个名为“根”的父div。现在,如果我们检查它,我们可以看到这个“根”div的所有子div。但如果我们看到这个页面的源代码(Ctrl+U)。此div总是显示为空,没有详细信息。

<div id="root" style="min-height: 100vh"></div>

我使用JSoup来解析这个页面并获取这个细节,但是因为这个div“根”是空的。我无法阅读这个“verisonLabel”的详细信息。有什么办法可以做到这一点吗?
请参考我已经尝试过的方法,但都没有奏效。
1.

String URL = "https://microsoftedge.microsoft.com/addons/detail/incognito-adblocker/efpgcmfgkpmogadebodiegjleafcmdcb";
Document doc = Jsoup.connect(URL).get();
Element version = doc.getElementById("versionLabel");
Document demo = Jsoup.parse(URL);
Element newHere = demo.getElementById("versionLabel");
WebDriver driver = new ChromeDriver();
        driver.get(URL);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        WebElement e = driver.findElement(By.xpath("//*[text()='Get started free']"));
        System.out.println(e);
String webpage = "https://microsoftedge.microsoft.com/addons/detail/incognito-adblocker/efpgcmfgkpmogadebodiegjleafcmdcb";
URL url = new URL(webpage);
        BufferedReader readr = 
          new BufferedReader(new InputStreamReader(url.openStream()));

        // Enter filename in which you want to download
        BufferedWriter writer = 
          new BufferedWriter(new FileWriter("Download.html"));

        // read each line from stream till end
        String line;
        while ((line = readr.readLine()) != null) {
            writer.write(line);
        }

        readr.close();
        writer.close();

在这两种方法中,因为“根”div本身是空的,所以我无法读取“versionLabel”范围。有人能建议一下这里的方法吗?

eh57zj3b

eh57zj3b1#

这将从“versionLabel”获取版本:

driver.find_element(By.XPATH, "(//span[@id='versionLabel'])[2]").text

相关问题