2016-07-29 4 views
0

So Dies ist die Seite Quelle:Wie kann ich testen ob ein Item aus dem Dropdown Menü mit Capybara/Poltergeist ausgewählt wurde?

<form class="ui form" action="/install" method="post"> 

       <h4 class="ui dividing header">Database Settings</h4> 
       <p>Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB.</p> 
       <div class="inline required field "> 
        <label>Database Type</label> 
        <div class="ui selection database type dropdown"> 
         <input type="hidden" id="db_type" name="db_type" value="MySQL"> 
         <div class="text">MySQL</div> 
         <i class="dropdown icon"></i> 
         <div class="menu"> 

           <div class="item" data-value="MySQL">MySQL</div> 

           <div class="item" data-value="PostgreSQL">PostgreSQL</div> 

           <div class="item" data-value="SQLite3">SQLite3</div> 

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

       <div id="sql_settings" class=""> 
        <div class="inline required field "> 
         <label for="db_host">Host</label> 
         <input id="db_host" name="db_host" value="127.0.0.1:3306"> 
        </div> 
        <div class="inline required field "> 
         <label for="db_user">User</label> 
         <input id="db_user" name="db_user" value="root"> 
        </div> 
        <div class="inline required field "> 
         <label for="db_passwd">Password</label> 
         <input id="db_passwd" name="db_passwd" type="password" value=""> 
        </div> 
        <div class="inline required field "> 
         <label for="db_name">Database Name</label> 
         <input id="db_name" name="db_name" value="gogs"> 
         <span class="help">Please use INNODB engine with utf8_general_ci charset for MySQL.</span> 
        </div> 
       </div> 

       <div id="pgsql_settings" class="hide"> 
        <div class="inline required field"> 
         <label>SSL Mode</label> 
         <div class="ui selection database type dropdown"> 
          <input type="hidden" name="ssl_mode" value="disable"> 
          <div class="default text">disable</div> 
          <i class="dropdown icon"></i> 
          <div class="menu"> 
           <div class="item" data-value="disable">Disable</div> 
           <div class="item" data-value="require">Require</div> 
           <div class="item" data-value="verify-full">Verify Full</div> 
          </div> 
         </div> 
        </div> 
       </div> 

       <div id="sqlite_settings" class="hide"> 
        <div class="inline required field "> 
         <label for="db_path">Path</label> 
         <input id="db_path" name="db_path" value="data/gogs.db"> 
         <span class="help">The file path of SQLite3 or TiDB database. <br>Please use absolute path when you start as service.</span> 
        </div> 
       </div> 

Und das ist meine Spec-Datei;

require 'spec_helper' 

describe "Configure Gogs" do 
include Capybara::DSL 

context 'Gogs Settings' do 
before { visit "http://0.0.0.0:3000" } 

it 'fill settings' do 
    select 'SQLite3', from: 'db_type' 
    fill_in :db_path, with: '/data/gogs.db' 

    within("#sql_settings") do 
    fill_in :db_host, with: '127.0.0.1:3306' 
    fill_in :db_user, with: 'Tom' 
    fill_in :db_passwd, with: '123456' 
    fill_in :db_name, with: 'vitakid' 
    fill_in :db_name, with: 'vitakid' 
    end 

    fill_in :app_name, with: 'CODE' 
    fill_in :repo_root_path, with: '/data/git/gogs' 
    fill_in :run_user, with: 'git' 
    fill_in :domain, with: 'localhost' 
    fill_in :ssh_port, with: '22' 
    fill_in :http_port, with: '3000' 
    fill_in :app_url, with: 'http://localhost:3000/' 
    fill_in :log_root_path, with: '/app/gogs/log' 


    click_button 'Install Gogs' 
    save_and_open_page 
end 

Ende Ende Ende das ist der Fehler, den ich bekam;

1) Konfigurieren Gogs Gogs Einstellungen Einstellungen Failure/Fehler füllen: Wählen Sie 'SQLite3' aus: 'db_type'

Capybara::ElementNotFound: 
    Unable to find select box "db_type" 
# ./spec/gogs_spec.rb:10:in `block (3 levels) in <top (required)>' 

Finished in 2,74 Sekunden (Dateien nahm 0,76115 Sekunden zu laden) 1 Beispiel 1 Ausfall

fehlgeschlagen Beispiele:

rspec ./spec/gogs_spec.rb:9 # konfigurieren Gogs Gogs Einstellungen Einstellungen füllen

ICH KANN SEEMANN ZU FINDEN, WAS ES GIBT FEHLER. BITTE HILFE

Antwort

0

select 'SQLite3', from: 'db_type' funktioniert nicht, da das db_type select-Element auf der Seite ausgeblendet ist und durch einige divs ersetzt wurde. Sie müssen tun, was ein Benutzer tun müsste, der auf das Dropdown-Symbol klickt und dann auf das Element im Menü, etwa

db_type_select = find('div.database.type.dropdown') 
within(db_type_select) do 
    find('i.dropdown').click 
    find('.item', text: 'SQLite3').click 
end 
Verwandte Themen