JavascriptExecutor如何在selenium webdriver中运行

时间:2013-10-29 21:44:13

标签: javascript selenium selenium-webdriver execution

当某人使用selenium的JavascriptExecutor对象在网页中插入一些javascript并执行它时,这个javascript代码在哪里运行?它是如何运行的?

我的意思是它永远位于页面中(直到重新加载页面)或者从外部执行。如果它位于页面中,是否可以再次使用该代码?

此外,如果其他一些javascript代码已在页面中运行,那么会发生什么,插入的代码会等待其他js代码停止或从浏览器外部并行执行。

我问了这个问题,因为我正在研究硒并使用JavaScriptExecutor。所以我只想知道它的内部工作原理。

1 个答案:

答案 0 :(得分:1)

在查看JavascriptExecutor的所有API和文档之后,这就是我找到的。

它有两种方法,即executeScriptexecuteAsyncScript。第一种方法是同步的,所以如果页面上已经运行了任何其他方法,那么注入的脚本可能会等待该脚本完成。

另一个方法执行任何异步脚本(如ajax调用或settimeout函数),因此注入的脚本不必等待。

插入的脚本也作为匿名函数的主体执行。脚本完成后局部变量会变暗,但全局变量会保留在页面中,并且可能在脚本完成后重复使用。

如果有人有更多相关信息,请提供。谢谢。