me_*_*jay 5 javascript selenium execution selenium-webdriver
当有人使用 selenium 的JavascriptExecutor对象在网页中插入一些 javascript并执行它时,这段 javascript 代码去哪里以及它如何运行?
我的意思是它永远位于页面中(直到页面重新加载)还是从外部执行。如果它位于页面中,是否可以再次使用该代码?
此外,如果其他一些 javascript 代码已经在页面中运行,那么会发生什么,插入的代码是等待其他 js 代码停止还是从浏览器外部并行执行。
我问这个问题是因为我正在研究硒并使用JavaScriptExecutor. 所以我只想知道它在内部是如何工作的。
在查看了所有 API 和文档之后,JavascriptExecutor我发现了这一点。
它有两种方法,即executeScript和executeAsyncScript。第一种方法是同步的,因此如果页面上已经运行了任何其他方法,则注入的脚本可能会等待该脚本完成。
另一种方法执行任何异步脚本(如 ajax 调用或 settimeout 函数),因此注入的脚本不必等待。
此外,插入的脚本作为匿名函数的主体执行。脚本完成后,局部变量会减少,但全局变量会保留在页面中,并且可能在脚本完成后可以重用。
如果有人有更多这方面的信息,请提供。谢谢。
| 归档时间: |
|
| 查看次数: |
2655 次 |
| 最近记录: |