2015-01-05 7 views
0

На моем сайте у меня есть обновитель (функция, которая время от времени обновляет данные таблицы) Я пытаюсь остановить ее, когда выполняю свои тесты. Самый простой способ остановить эту функцию - перезаписать ее. для этого мне нужно один из двух, написать:Возможно ли изменить источник страницы с селеном (phpunit)?

function refresher(){} в console.log или просто придать <script>function refresher(){}</script>

мой вопрос: как я могу написать в исходный код страницы с селеном?

спасибо.

EDIT: , чтобы он работает с 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 функцию.

Смежные вопросы