如何使用selenium php发送电子邮件

时间:2012-09-26 14:05:49

标签: php selenium phpunit selenium-rc

嗨人

我想知道是否有人知道如何通过selenium / php中的测试发送电子邮件 我正在尝试这样做:

<?php

class Example extends PHPUnit_Extensions_SeleniumTestCase
{
  protected function setUp()
  {
    $this->setBrowser("chrome");
    $this->setBrowserUrl("http://recette2011.thalys.com/");
    $this->setSpeed(500);
  }

  public function testMyTestCase()
  {
    $this->open("/be/en");
    $this->click("link=Help");
    $this->waitForPageToLoad("30000");
    $this->click("id=multi_block_title_span_element_2");
    $this->click("id=demande_information");
    $this->click("id=type_billet_information_aucun");
    $this->click("id=btn_valider");
    $this->waitForPageToLoad("30000");
    $url = $this->getLocation();
    echo $url;
    $cpt = substr_count ($url, "&");
    if($cpt >3){
        if(mail('ths@bytesandcom.be','Test',"Le test a foiré"))
        {
            echo "message sent";
        }
        else
        {
            echo "sent message failed";
        }
        echo "test failed";
    }
    else
    {
        echo "Test Granted";
    }
  }

}

当我进入“if($ cpt&gt; 3)”时,我的服务器会告诉我: 传递给PHPUnit_Framework_Error :: __ construct()的参数5必须是一个实例 异常,给定数组,在C:\ wamp \ bin \ php \ php5.3.5 \ PEAR \ PHPUnit \ Exten中调用 sions \ SeleniumTestCase.php在1152行并定义了

2 个答案:

答案 0 :(得分:1)

我发现如何通过在错误诅咒时编写日志文件并创建一个Cron来通过检查文件是否存在来发送电子邮件

这是我的代码:

<?php

class Example extends PHPUnit_Extensions_SeleniumTestCase
{
  protected function setUp()
  {
    $this->setBrowser("*firefox");
    $this->setBrowserUrl("http://recette2011.thalys.com/");
    $this->setSpeed(500);
  }

  public function testMyTestCase()
  {
      $this->open("/be/en");
      $this->click("link=Help");
      $this->waitForPageToLoad("30000");
      $this->click("id=multi_block_title_span_element_2");
      $this->click("id=demande_information");
      $this->click("id=type_billet_information_aucun");
      $this->click("id=btn_valider");
      $this->waitForPageToLoad("30000");
      $url = $this->getLocation();
      echo $url;
      $cpt = substr_count ($url, "&");
      if($cpt >3){
         $date = date("d-m-Y");
         $heure = date("H:i");
         $monfichier = fopen('C:\Users\intégrateur\Desktop\testSelenium\logSelenium.txt', 'a+');
         fputs($monfichier, '-- Probleme dans le fichier PasBillet.php le '.$date.' a '.$heure.' -- ');
         fclose($monfichier);
      }
      else
      {
          echo "Test Granted";
      }
   }

}
?>

Cron是:

<?php
$file = "C:\Users\intégrateur\Desktop\testSelenium\logSelenium.txt";
if(file_exists($file))
{
    if(filesize($file)>0)
    {
        mail('ths@bytesandcom.be','Probleme selenium','Une erreur est survenue dans un test de formaulaire. Pour plus d\'info consulter le fichier logSelenium.txt');
    } 
}
?>

答案 1 :(得分:0)

我认为这是由于PHPUnit 3.7.1.的向后兼容性中断 我通过使用composer下载phpunit/phpunit-selenium解决了这个问题。