Резюме
Я хочу найти способ добавить тег <script>
в заголовок DOM, используя Selenium
JavascriptExecutor
, или любой другой способ сделать это было бы неплохо.
Я пробовал много способов, а также нашел несколько похожих тем, и ни одна из них не решила мою проблему, поэтому я почувствовал необходимость задать ее здесь.
Например:
Предлагаемые решения в этом вопросе не решили мою проблему. Некоторые люди говорят, что это работает для них, но нет, это не для меня.
Что я пытался выполнить?
Вот небольшой фрагмент кода, который я хочу выполнить:
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
До сих пор я пробовал все возможные решения, которые мог найти в Интернете, но ни одно из них, похоже, не работает.