gpt4 book ai didi

java - 如何在java中使用selenium获取页面的常规(!)源代码?

转载 作者:行者123 更新时间:2023-12-02 01:58:48 28 4
gpt4 key购买 nike

好吧,事情是这样的:你们所有人可能都在想同样的事情:您可以使用

driver.getPageSource();

这部分是正确的。唯一的问题是源代码以一种相当奇怪的方式编译,所有代码都在其中

\"

开始出现。我尝试手动删除它,但这仍然不能完全解决问题。

我的意思的一个例子:

正常源代码:

\"query_title\":null}",encoded_title:"WyJoZW5rIl0",ref:"unknown",logger_source:"www_main",typeahead_sid:"",tl_log:false,impression_id:"bbdb1882",filter_ids:

Selenium 输出:

\\\"query_title\\\":null}\",\"encoded_title\":\"WyJoZW5rIl0\",\"ref\":\"br_tf\",\"logger_source\":\"www_main\",\"typeahead_sid\":\"0.6583900225217523\",\"tl_log\":false,\"impression_id\":\"e00060b4\",\"filter_ids\"

这似乎与必须在引号中的某些符号前面放置某些内容以阻止 java 将其视为这些符号之一的情况相同,但我不完全理解这种行为,并且不知道如何解决它...希望你能帮忙:)

编辑:由于编译方式的原因,替换不起作用。为什么它不起作用的一个例子实际上是我之前包含的示例:

原文:

}",encoded_title:

编译版本:

}\",\"encoded_title\":

将\"替换为 "会将其更改为:

}","encoded_title":

与原来的不同...

如果我将\"替换为空,我会得到:

},encoded_title:

遗憾的是,它仍然与原来的有所不同。我只是认为替换它的编译方式不是一个可行的选择...

最佳答案

您可以使用 javascript 通过outerHTML 或innerHTML 获取html (How do I get the HTML source from the page?):

((JavascriptExecutor) driver).executeScript("return document.documentElement.outerHTML;")
((JavascriptExecutor) driver).executeScript("return document.documentElement.outerHTML;")
((JavascriptExecutor) driver).executeScript("return document.all[0].outerHTML")
((JavascriptExecutor) driver).executeScript("return new XMLSerializer().serializeToString(document);")

关于java - 如何在java中使用selenium获取页面的常规(!)源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51920221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com