2015-01-05 54 views
0

在我的網站中,我有一個複習(功能,不斷更新表格的數據) 當我做我的測試時,我試圖阻止它。停止此功能的最簡單方法是覆蓋它。 爲了這個,我需要一個二,寫:是否可以用selenium(phpunit)更改頁面的源代碼?

function refresher(){}console.log或只是注入<script>function refresher(){}</script>

我的問題:我怎麼能寫與硒頁面的源代碼?

謝謝。

編輯: ,使其可與PHPUnit的硒:

$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

覆蓋你的函數會是這樣的最簡單方法:

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("window.refresher = function() {};"); 

使用window.refresher而不是refresher清楚地表明你的意圖是覆蓋全球refresher功能。

相關問題