2

根據twitter bootstrap,這是我們如何做廣播:我們如何使用Laravel Dusk檢查Twitter Bootstrap單選按鈕?

<div class="radio"> 
    <label> 
    <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked> 
    Option one is this and that&mdash;be sure to include why it's great 
    </label> 
</div> 

這是我的代碼:

$browser->click('#menu-reports') 
     ->waitForText('Users') 
     ->click('#menu-reports-users') 
     ->radio('sitesActive', '2') 
     ->radio('includeDisabled', '2') 
     ->radio('includeNonCertifiable', '2') 
     ->press('Apply') 
     ->waitForText('Showing 0 to 0 of 0 entries') 
; 

帶標籤的標籤內部的輸入。但問題是,黃昏(實際上是Facebook Webdriver)無法以這種方式找到它。它不斷提高:

Facebook\WebDriver\Exception\ElementNotVisibleException: element not visible 

爲了使它工作,我已經把輸入的標籤之外,但後來,當然,自舉無線電不顯示,因爲它應該了。

<div class="radio"> 
    <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked> 
    <label> 
    Option one is this and that&mdash;be sure to include why it's great 
    </label> 
</div> 

不使用IDS的工作,要麼:

甚至不是一個ID設置爲輸入:

<input 
    type="radio" 
    name="sitesActive" 
    id="sitesActive3" 
    value="2" 
> 

,並試圖選擇這種方式:

->radio('#sitesActive3', '2') 

的問題在於黃昏(Webdriver)甚至無法看到頁面中的元素,因爲這種簡單的方式與以完全相同的方式失敗:

$browser->waitFor('#sitesActive3'); 

,導致:

Facebook\WebDriver\Exception\TimeOutException: Waited 5 seconds for selector [#sitesActive3]. 

而且出現這種情況每次我有一個表格時,與輸入一個標籤圍繞着它,如果我把輸入了標籤,它的工作原理。但是收音機並不是那麼簡單,因爲它與其他一些輸入,無線電一樣。

這是一個正確編碼電臺:

image

這是與標籤標籤外部的輸入無線電:

image

那麼,你怎麼做呢?

回答

0

你可能不樂意編輯您的意見對你的測試腳本的緣故,但如果你是持開放的態度,怎麼樣添加類的

<input type="radio" ... > 

,然後使用

 ->click('.yourClass') 

在你的黃昏測試?

+0

會很奇怪,因爲我必須爲每個收音機添加一個類'.myRadioClass1; .myRadioClass2',但我嘗試了類似於ids的方式:'',並且執行了' - >點擊('#radio1')',但它不起作用 –

+0

我嘗試了類的事情,它似乎工作 - 但你是對的,每個元素添加一個單獨的類可能會很煩人。我期待着看到還有什麼其他的建議。 – CaraGee

0

我的表單有一個單選按鈕。這我怎麼檢查它。

userCreate.blade。PHP

<div class="row"> 
    <div class="col-md-12"> 
     <div class="form-group"> 
      <label>Gender</label> 
      <div> 
       <label class="radio-inline"> 
        <input type="radio" id="gender" name="gender" value="m">Male 
       </label> 
       <label class="radio-inline"> 
        <input type="radio" id="gender" name="gender" value="f">Female 
       </label> 
      </div> 
     </div> 
    </div> 
</div> 

CreateUserTest.php

class CreateUserTest extends DuskTestCase 
{ 

    public function testCreateForm() 
    { 
     $this->browse(function (Browser $browser) { 
      $browser->visit('/user/create') 
       ->radio('#gender', 'm') 
       ->click('button[type="submit"]') 
       ->assertSee('Successfully created user.'); 
     }); 
    } 
} 

這對我的作品。我認爲這會幫助你。