【问题标题】:is it possible change the source of the page with selenium (phpunit)?是否可以使用 selenium (phpunit) 更改页面的来源?
【发布时间】:2015-03-03 00:09:27
【问题描述】:

在我的网站中,我有一个复习(不时更新表格数据的功能) 我在进行测试时尝试停止它。停止此功能的最简单方法是覆盖它。 为此,我需要两个之一,写:

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

我的问题:如何使用 selenium 写入页面源代码?

谢谢。

编辑: 使其与 phpunit-selenium 一起使用:

$script = file_get_contents( "script.js" );
$this->execute( array(
         'script' => $script,
         'args'  => array()
));

【问题讨论】:

  • 您确定要这样做吗?删除事件怎么样?

标签: selenium phpunit


【解决方案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);

这将满足您的需求。但请仔细想想,为什么你真的想这样做。

【讨论】:

    【解决方案2】:

    覆盖函数的最简单方法如下:

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

    使用window.refresher 而不是refresher 可以清楚地表明您的意图是覆盖全局refresher 函数。

    【讨论】:

      猜你喜欢
      • 2011-02-03
      • 2012-04-20
      • 2017-01-03
      • 2010-09-17
      • 2012-10-15
      • 1970-01-01
      • 2020-03-11
      • 2023-03-13
      • 2021-12-27
      相关资源
      最近更新 更多