Я использую многопоточный способ, чтобы открыть вкладку, и когда страница заканчивается sh загружать закрывающую вкладку
, это мой код открытой вкладки
((JavascriptExecutor)webDriver).executeScript("window.open('"+url+"')");
При закрытии вкладки я повторяю webDriver.getWindowHandles()
и используйте функцию executeScript
, но найдите некоторую ошибку, это мой код
этот код работает нормально в chrome, он закрывает все вкладки, но в firefox некоторые windowHandler закрыты, а некоторые нет
((JavascriptExecutor) webDriver).executeScript("setTimeout(function(){window.close()},10000)");
или
((JavascriptExecutor) webDriver).executeScript("setInterval(function(){window.close()},10000)");
Я пытаюсь использовать этот код, но он также похож на приведенный выше код
((JavascriptExecutor) webDriver).executeScript("var script = document.createElement('script');\n" +
"script.type = 'text/javascript';\n" +
"script.innerHTML = 'setTimeout(function(){window.close()},10000);';\n" +
"script.innerHTML = 'window.close()';\n" +
"document.body.appendChild(script);");
, но когда я удаляю "script.innerHTML = 'setTimeout(function(){window.close()},10000);';\n" +
, используйте только window.close()
она работает, закрывает все вкладки, но не отвечает потребностям
, поэтому я думаю, что, возможно, функция setTimeout
и setInterval
вызывает эту проблему в firefox
, затем я изменяю код на этот
((JavascriptExecutor) webDriver).executeScript("var start = null;\n" +
"\n" +
"function step(timestamp) {\n" +
" if (!start) start = timestamp;\n" +
" var progress = timestamp - start;\n" +
" if (progress < 2000) {\n" +
" window.requestAnimationFrame(step);\n" +
" } else {\n" +
" window.close();\n" +
" }\n" +
"}\n" +
"\n" +
"window.requestAnimationFrame(step);");
это также некоторые windowHandler закрыты, а некоторые нет
Я не знаю, как я могу закрыть вкладку в firefox на javascript
Требование закрывать вкладку сразу через 10 секунд или закрывать вкладку после загрузки страницы