2017-02-12 5 views
0

のModelizer/Seleniumパッケージを使用してPHP、Laravel、Seleniumを実行している要素を見つけることができません。私は隠された要素や上品なjavascriptを持たないシンプルなフォーム(LaravelCollectiveで作った)を持っています。セレンは、

フォームとテストコードは以下のとおりです。

私はすべて同様の質問を確認しました

1) can_search_by_city::testCanSearchByCity 
Modelizer\Selenium\Exceptions\CannotFindElement: Cannot find element: Search by City isn't visible on the page 

を取得します。別の問題に特化していないものはありません。ここで

は...

$this->visit('/login') 
     ->type($this->User->email, 'email') 
     ->type('secret', 'password') 
     ->press('Login') 
     ->see('Searches') 
     ->type('queensbury ny','address') 
     ->type('100','distance') 
     ->wait(20) 
     ->click('Search by City') 
     ->see('Glens Falls #81') 
    ; 
} 

私のコードと、その後、私の形態であり、その後、私のフォームは...

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <title> Welcome 
- Elk RV Parking</title> 

    <!-- Fonts --> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css" integrity="sha384-XdYbMnZ/QjLh6iI4ogqCTaIjrFk87ip+ekIjefZch0Y+PvJ8CDYtEs1ipDmPorQ+" crossorigin="anonymous"> 
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:100,300,400,700"> 

    <!-- Styles --> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 

    <style> 
     body { 
      font-family: 'Lato'; 
     } 

     .fa-btn { 
      margin-right: 6px; 
     } 
    </style> 
</head> 
<body id="app-layout"> 
    <nav class="navbar navbar-default navbar-static-top"> 
     <div class="container"> 
      <div class="navbar-header"> 

       <!-- Collapsed Hamburger --> 
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse"> 
        <span class="sr-only">Toggle Navigation</span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 

       <!-- Branding Image --> 
       <a class="navbar-brand" href="http://localhost:8000"> 
        Elk RV Parking 
       </a> 
      </div> 

      <div class="collapse navbar-collapse" id="app-navbar-collapse"> 
       <!-- Left Side Of Navbar --> 
       <ul class="nav navbar-nav"> 
        <li><a href="http://localhost:8000/home">Home</a></li> 
       </ul> 

       <!-- Right Side Of Navbar --> 
       <ul class="nav navbar-nav navbar-right"> 
        <!-- Authentication Links --> 
              <li class="dropdown"> 
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> 
           Ed Greenberg <span class="caret"></span> 
          </a> 

          <ul class="dropdown-menu" role="menu"> 
           <li><a href="http://localhost:8000/logout"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li> 
          </ul> 
         </li> 
            </ul> 
      </div> 
     </div> 
    </nav> 

      <div class="container"> 
     <div class="row"> 
      <div class="col-md-10 col-md-offset-1"> 
       <div class="panel panel-default"> 
        <div class="panel-heading">Welcome to Elk RV Parking</div> 

        <div class="panel-body"> 

         <h1>Searches</h1> 
         <h2>by distance from a city or address</h2> 
         <form method="POST" action="http://localhost:8000/search/address" accept-charset="UTF-8" id="search-by-city"><input name="_token" type="hidden" value="CBphF66rzzk3MbYiNpLK2EsC1jxqVAt6XwRQA9vo"> 
         <input name="_token" type="hidden" value="CBphF66rzzk3MbYiNpLK2EsC1jxqVAt6XwRQA9vo"> 

         <div class="row"> 
          <div class="col-md-8">Enter a city, state, a state, an address, anything that Google Maps would properly search</div> 
          <div class="col=md-4">Distance</div> 
         </div> 
         <div class="row"> 
          <div class="col-md-8"><input size="50" name="address" type="text" value=""></div> 
          <div class="col=md-4"><input name="distance" type="text"></div> 
         </div> 
         <div> 
          <div><input type="submit" value="Search by City"></div> 
         </div> 
         </form> 

         <h2>byLodge Number</h2> 
         <form method="POST" action="http://localhost:8000/search/lodgenumber" accept-charset="UTF-8" id="search-by-lodge-number"><input name="_token" type="hidden" value="CBphF66rzzk3MbYiNpLK2EsC1jxqVAt6XwRQA9vo"> 
         <input name="_token" type="hidden" value="CBphF66rzzk3MbYiNpLK2EsC1jxqVAt6XwRQA9vo"> 

         <div class="row"> 
          <div class="col-md-8">Enter a lodge number</div> 
         </div> 
         <div class="row"> 
          <div class="col-md-8"><input size="10" name="lodge_number" type="text" value=""></div> 
         </div> 
         <div class="row"> 
          <div class="col-md-8"><input type="submit" value="Search by Lodge Number"></div> 
         </div> 
         </form> 



        </div> 
       </div> 
      </div> 
     </div> 
    </div> 

    <!-- JavaScripts --> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js" integrity="sha384-I6F5OKECLVtK/BL+8iSLDEHowSAfUo76ZL9+kGAgTRdiByINKJaqTPH/QVNS1VDb" crossorigin="anonymous"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> 
    </body> 
</html> 

私の理解では、セレンはそれの値によって要素を探すということです。その場合、「都市別検索」。なぜそれが見えないのか分かりません。

+0

参照メソッドが期待するものをクリックして、多分それはボタンまたはリンクタイプを探して、あなたが実際に入力タイプを持って、この場合には、あなたがCSSセレクタを使用して要素を特定する必要がある場合があります。 – lauda

答えて

-1

APIをのように使用して、必要な操作を行うことができます。 Modelizer/Laravel-Selenium wikiで利用可能な情報に基づいて、をクリックすると、はアンカータグの名前、IDまたはテキストプロパティを検索します。したがって、あなたは次のことを試すことができます。

$this->visit('/login') 
    ->type($this->User->email, 'email') 
    ->type('secret', 'password') 
    ->press('Login') 
    ->see('Searches') 
    ->type('queensbury ny','address') 
    ->type('100','distance') 
    ->wait(20) 
    ->press('Search by City') 
    ->see('Glens Falls #81')