gpt4 book ai didi

java - 如何使用 Selenium JavascriptExecutor 将 <script> 添加到 Head 中

转载 作者:行者123 更新时间:2023-12-02 01:36:47 25 4
gpt4 key购买 nike

摘要

我想找出一种方法来添加 <script>使用 Selenium 标记到 DOM 头部的JavascriptExecutor ,或任何其他方式做到这一点会很好。

<小时/>

我尝试了很多方法,也发现了一些类似的主题,但没有一个解决我的问题,这就是为什么我觉得有必要在这里提问。

例如:

Suggested solutions in this question没有解决我的问题。有些人说这对他们有用,但不,对我没用。

<小时/>

我一直在尝试执行什么?

这是我要执行的一小段代码:

            WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor) driver;

jse.executeScript("var s = document.createElement('script');");
jse.executeScript("s.type = 'text/javascript';");
jse.executeScript("s.text = 'function foo() {console.log('foo')}';");
jse.executeScript("window.document.head.appendChild(s);");

我刚刚跳过了上面的代码,您可以使用 driver.get() 导航到网页。等等,然后尝试执行脚本。

此外,s.text将包含我想要使用的实际脚本,所以我只是放了一个 foo()函数只是为了给出想法。

上面的代码在运行时会抛出此错误:

Exception in thread "main" org.openqa.selenium.JavascriptException: ReferenceError: s is not defined

<小时/>

到目前为止,我已经尝试了在互联网上可以找到的所有可能的解决方案,但似乎都不起作用。

最佳答案

OP提出了以下解决方案:

jse.executeScript("var s=window.document.createElement('script');" + 
"s.type = 'text/javascript';" + "s.text = function foo() {console.log('foo')};" +
"window.document.head.appendChild(s);");

关于java - 如何使用 Selenium JavascriptExecutor 将 &lt;script&gt; 添加到 Head 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55124506/

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