gpt4 book ai didi

javascript - Selenium 中的 JavaScriptExecutor 是什么?

转载 作者:行者123 更新时间:2023-11-29 10:02:28 26 4
gpt4 key购买 nike

什么是 Selenium WebDriver 中的 JavaScript 执行器?

它有什么用,我们如何在 Selenium WebDriver 中使用它?

一个例子将不胜感激。

最佳答案

Javascript执行器

JavascriptExecutorSelenium 接口(interface),它由以下所有类实现:

  • FirefoxDriver
  • ChromeDriver
  • InternetExplorerDriver
  • EdgeDriver
  • OperaDriver
  • SafariDriver
  • RemoteWebDriver
  • EventFiringWebDriver
  • HtmlUnitDriver

当您有时由于跨域策略执行您的 Selenium 脚本时,浏览器强制执行您的脚本可能会意外失败并且没有足够的错误日志记录。这在创建您自己的 XHR 请求或尝试访问另一个框架时尤为重要。

您将在 Uncaught DOMException: Blocked a frame with origin “http://localhost:8080” from accessing a cross-origin frame while listing the iframes in page 中找到详细讨论

JavascriptExecutor接口(interface)提供了如下两个方法:

  • executeScript() :此方法在当前选定的框架或窗口的上下文中执行 JavaScript。提供的脚本片段将作为匿名函数的主体执行。在脚本中,您需要使用 document 来引用当前文档。请注意,一旦脚本执行完毕,局部变量将不可用,但全局变量将持续存在。

  • executeAsyncScript() :此方法在当前选定的框架或窗口的上下文中执行一段异步的 JavaScript。与执行同步 JavaScript 不同,使用此方法执行的脚本必须通过调用提供的回调来明确表示它们已完成。此回调始终作为最后一个参数注入(inject)到已执行的函数中。


例子

几个例子:


引用

您还可以在以下位置找到关于参数的一些详细讨论:


tl;dr

Cross-domain policy file specification

关于javascript - Selenium 中的 JavaScriptExecutor 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52689880/

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