在我的网站上我有一个复习(不时更新表格数据的功能) 我尝试在测试时停止它。停止此功能的最简单方法是覆盖它。 为此,我需要两个中的一个,写:
function refresher(){}
进入console.log
或只是注入<script>function refresher(){}</script>
我的问题:如何用selenium写入页面源?
感谢。
编辑: 使它适用于phpunit-selenium:
$script = file_get_contents( "script.js" );
$this->execute( array(
'script' => $script,
'args' => array()
));
答案 0 :(得分:1)
您可以使用JavascriptExecutor执行此操作。像这样:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("read js from file");
你的js内容应该是这样的:
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.text = "function refresher(){}"
document.body.appendChild(script);
这将满足您的需求。但是想一想,为什么你真的想这样做。
答案 1 :(得分:1)
覆盖你的功能的最简单方法是:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.refresher = function () {};");
使用window.refresher
而非refresher
表明您的意图是覆盖全局refresher
功能。