2017-04-24 142 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