2017-04-24 225 views
-1

我其中有一個表格下面的HTML代碼的文件:表單提交驗證

<label for="subject">Subject</label>* : <input name="subject" id="subject" type="text"> 
<br>  
<label for="message">Message</label>* : <textarea type="text" name="message" id="message"></textarea> 
<br> 
<input name="name" id="name" value="" type="hidden"> 
<input value="Submit Ticket" onclick="submitTicket()" type="button"> 

我提交表格後,相應的車票將在它具有以下HTML代碼表:

<table class="list" width="100%"> 
    <tbody><tr class="messagelist"> 
     <th>#</th> 
     <th>ID</th> 
     <th>Name</a></th> 
     <th>Subject</a></th> 
     <th>Owner</a></th> 
     <th>Priority</a></th> 
    </tr> 
    <tr class="list_row"> 
     <td>1.</td> 
     <td><a href="index.html?ID=14" class="trackingcode">14</a></td> 
     <td class="name">X</td> 
     <td class="subject">Test1</td> 
     <td class="owner">AB</td> 
     <td class="priority">High</td> 
    </tr> 
    <tr class="list_row"> 
     <td>2.</td> 
     <td><a href="index.html?ID=22" class="trackingcode">22</a></td> 
     <td class="name">Y</td> 
     <td class="subject">Test2</td> 
     <td class="owner">CD</td> 
     <td class="priority">Low</td> 
    </tr> 
    <tr class="list_row"> 
     <td>3.</td> 
     <td><a href="index.html?ID=31" class="trackingcode">31</a></td> 
     <td class="name">Z</td> 
     <td class="subject">Test3</td> 
     <td class="owner">EF</td> 
     <td class="priority">Medium</td> 
    </tr> 
    <tr class="list_row"> 
     <td>4.</td> 
     <td><a href="index.html?ID=42" class="trackingcode">42</a></td> 
     <td class="name">A</td> 
     <td class="subject">Test4</td> 
     <td class="owner">GH</td> 
     <td class="priority">High</td> 
    </tr> 
    <tr class="list_row"> 
     <td>5.</td> 
     <td><a href="index.html?ID=34" class="trackingcode">34</a></td> 
     <td class="name">B</td> 
     <td class="subject">Test5</td> 
     <td class="owner">IJ</td> 
     <td class="priority">Low</td> 
    </tr> 
    <tr class="list_row"> 
     <td>6.</td> 
     <td><a href="index.html?ID=43" class="trackingcode">43</a></td> 
     <td class="name">C</td> 
     <td class="subject">Test6</td> 
     <td class="owner">KL</td> 
     <td class="priority">Medium</td> 
    </tr> 
</tbody></table> 

我正在爲上述表單和票據寫一個RUBY代碼。我想驗證提交的表格和票證相關的主題Test1。基於這個話題,我想點擊Test1的ID鏈接。 任何人都可以請幫助如何做到這一點?

這裏是我的嘗試:

require 'watir' 

    browser.tds(:class, 'list_row').each do |tds_row| 
     if tds_row.text =~ /Test1/ 
      tds_row.a(:href, 'index.html').click 
     end 
    end 
+0

歡迎使用Stack Overflow。但您不確定,但如果沒有,爲什麼?如果是這樣,你的代碼在哪裏顯示你的嘗試?請閱讀「[mcve]」和「[多少研究努力我預期堆棧溢出用戶?](http://meta.stackoverflow.com/questions/261592)「。 –

+0

@ TheTinMan,對不起。我只是把我試過的代碼 – userash

+1

所以你使用瀏覽器測試自動化工具[標籤:Watir]的事實很重要,你不覺得嗎? –

回答

0

可以遍歷表中的行,和重排的內容將是一個表格單元格。然後,您可以檢查該單元格的文本。如果第四個單元格的值是您正在查找的單元格的值(即「Test1」),則單擊第二個單元格中的鏈接並跳出迭代。這裏是一個人爲的例子:

require 'watir' 

b = Watir::Browser.new :chrome 
b.goto("http://some_url") 

b.button(:value => "Submit Ticket").click 
b.trs.each do |tr| 
    if tr[3].text == "Test1" 
    tr[1].a.click 
    break 
    end 
end 
b.close 

它仍然是笨重,脆弱的,所以它可能是更好的目標爲基礎,他們的階級屬性的單元格。

而且 - 在你的Watir例子 - 它看起來像你想基於父行的類屬性的browser.tds(:class, 'list_row')(即browser.tds(:class, 'list_row'),而不是定位表格單元格

+0

非常感謝。有效 – userash

0

鑑於HTML良好標記的,遍歷行要比它更復雜,找到特定的主題單元然後導航到它的父行會更容易。

# Find the cell with the specific subject text 
subject = browser.td(class: 'subject', text: 'Test1') 

# Get the row 
row = subject.parent 

# Click the tracking code link 
row.link(class: 'trackingcode').click