2014-10-07 118 views
0

我有一個問題,找到一個單選按鈕。下面是HTML的一個片段:水豚/黃瓜找不到收音機

<form action="/" id="frm-info" method="post"><input id="ClickedButton" name="ClickedButton" type="hidden" value="" /><input name="__RequestVerificationToken" type="hidden" value="KTQF3bkKPP0OirvtL1EYsW-Q77zq-8H9YAPqeoBB9ewpNSYoc0dOEout26qrtMmX6xBx0_roxqWRwCXAlwZRTyW9ZBTBjwNgifWqws6hyOFIRmc6O-7P6jZXbZNYJ5Pazt9Hmg2" /> <div class="row borGreyPad mlmrcolor bb0"> 
     <div class="col-sm-12 coverImage"> 
      <div class="col-md-7 col-lg-6 fr xs-fl"> 
       <div class="frm-content axaborderBlue mt10"> 
        <div class="pl25 pt15 pr15 pb10"> 
         <p class="large-heading">Enter some basic information to get started</p> 
         <div class="row "> 
           <div class="row pl15"> 
            <div class="col-sm-4 r xs-l mb5 f14">Application Taken: *</div> 
            <div class="col-sm-8 mb5"> 
             <div class="groupBox"> 
              <span class="dib f14 "> 
               <input id="ApplicationTaken" name="ApplicationTaken" tabindex="1" type="radio" value="ApplicationInPerson" /><span class="dib mr10 ">In Person</span> 
              </span> 
              <span class="dib f14 "> 
               <input id="ApplicationTaken" name="ApplicationTaken" tabindex="2" type="radio" value="ApplicationByPhone" /><span class="dib mr10 ">By Phone</span> 
              </span> 
             </div> 

我想用的名字「ApplicationTaken」來選擇單選按鈕和值「ApplicationInPerson」

我試過幾種不同的方式,包括:

當/ ^我點擊收音機名稱爲「([^」] )「和值」([^「])」$/do | myName,myValue | 選擇( 「#{MYNAME}」,:選項=> 「#{myvalue的}」) 端

當/^I點擊與名稱的無線電 「([^」] ) 「和值」([^「])」$/do | myName,myValue | 查找(:XPath中, 「//輸入[@value = '#{myvalue的}']」,匹配::第一).SET(真)

一直看到以下錯誤:「無法找到值爲「ApplicationInPerson」的單選按鈕「ApplicationTaken」。我也嘗試了ID,沒有運氣。我可以在此頁面上選擇一個按鈕並填寫文本字段,我不能選擇單選按鈕或下拉菜單謝謝

+0

你真的需要清理它。 '當/^| click'?這是完全不可讀的垃圾。 – 2014-10-07 21:29:48

回答

0

由於您使用的水豚嘗試:

choose('Visible Text') 

見:

https://gist.github.com/zhengjia/428105

+0

仍然沒有運氣,這是我最初嘗試的一個選項,但再次嘗試,只是爲了確定,仍然無法找到它。 – cgillette 2014-10-08 14:17:18

+0

選擇('電話')找不到?嗯 – bcar 2014-10-08 16:03:59

0

對於初學者來說,你必須使用相同的ID兩個單選按鈕。這很糟糕 - 你不應該在頁面上有重複的ID。嘗試在存在重複項時通過ID查找元素是非常不可預測的。

最有可能發生的事情是找到具有匹配ID的第一個元素,然後檢查value屬性。當它不匹配時,它表示找不到元素,因爲它不會繼續到下一個匹配的ID(因爲ID選擇器在內部工作的方式)

我看到您也使用xpath來查找元素。您通常應該使用CSS而不是xpath來查找元素。

因此,將ID留出,並使用CSS代替,find('input[name=ApplicationTaken][value= ApplicationInPerson]')應該爲您提供您要查找的元素。

+0

仍然沒有工作...得到: 「無法找到CSS」收音機[名稱= ApplicationReserved] [值= ApplicationInPerson]「 cgillette 2014-10-14 23:59:28

+0

對不起,我的意思如下:'輸入[ name = ApplicationTaken] [value = ApplicationInPerson]'請注意,這是一個輸入元素,而不是一個無線電元素。我會更新原始評論,以防有人絆倒這個幫助。 – 2014-10-15 04:13:57