朋友們,我會盡量詳細一點。Thomas Walpole 它幫助我驗證了作業表每一行的資訊是否對應于我的應用程式網格的每一行。但是我想使用 for 來驗證它以使其更漂亮。我將如何更改以下解決方案?
由于我不知道如何在這些條件下使用回圈,我必須在我的作業表中逐項手動完成,并與前面的專案逐一驗證
我的電子表格配置如下: | 元素 | 狀態 | | No Hidr?metro |Invisível | | 萊圖拉 |Invisível | | Diametro do HD |Invisível | | 過濾器 |Invisível | | Padr?o de instala??o do HD |Invisível | | 遙測設備|Invisível |
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open('c:/temp/gab.xls', "r")
sheet = book.worksheet 0
#get the first row referring to the second column
take_hidrometro_planilha = sheet.rows[1][1]
pp "O item da planilha N. hidrometro esta configurado para #{take_hidrometro_planilha}"
expect(page).to have_css("tr.tvRow:nth-child(2) .tvCell:nth-child(6) img[tooltip='#{take_hidrometro_planilha}']")
#takes the tooltip on the front according to the desired line and saves it in a variable
take_hidrometro_front = find("tr.tvRow:nth-child(2) .tvCell:nth-child(6) img[tooltip]")[:tooltip]
pp "O item do Front N. hidrometro esta configurado para #{take_hidrometro_front}"
#validates the worksheet variable with the variable captured on the front
pp expect(take_hidrometro_front).to eql(take_hidrometro_planilha)
####################HTML代碼########################### #######
<div style="" class="tvContent">
<div style="display:table;width:100%; background:inherit;">
<div style="display:table-cell;">
<table width="100%" class="tvGrid">
<tbody>
<tr>
<th colspan="1" class="tvHeader">Nome</th>
<th colspan="1" >Etiqueta</th>
<th colspan="1" class="tvHeader">Tipo Dado</th>
<th colspan="1" >Valores </th>
<th colspan="1" width="1" class="tvHeader">Preenchimento automático</th>
<th colspan="1" >Status </th>
<th colspan="1"></th>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',0,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',0,'','','');" onm ousedown="if(event.ctrlKey) this.cancelEvent=true;" class="tvRow tvRowOdd tvRoll" style="cursor:pointer;">
<td valign="center" align="left" class="tvCell">FLAG_INSERIMENTO_LETTURA_E</td>
<td valign="center" align="left" > Leitura Existente</td>
<td align="left" class="tvCell" valign="center" nowrap=""></td>
<td valign="center" align="left" ></td>
<td align="left" width="1" class="tvCell" valign="center" tooltip=""></td>
<td valign="center" align="center" ><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" hljs-string">" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',0,'','','','');" hljs-string">">
<div><img src="r/std/icons/menu64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',1,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',1,'','','');" onm ousedown="if(event.ctrlKey) this.cancelEvent=true;" hljs-string">" style="cursor:pointer;">
<td valign="center" align="left" hljs-string">">XWFMSLETMATRICOLA_E</td>
<td valign="center" align="left" hljs-string">"> No Hidr?metro</td>
<td align="left" hljs-string">" valign="center" nowrap=""></td>
<td valign="center" align="left" hljs-string">"></td>
<td align="left" width="1" hljs-string">" valign="center" tooltip="[AIMPMATRICOLA]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',1,'','','','');" hljs-string">" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" hljs-string">"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" hljs-string">" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',1,'','','','');" hljs-string">">
<div><img src="r/std/icons/menu64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',2,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',2,'','','');" onm ousedown="if(event.ctrlKey) this.cancelEvent=true;" hljs-string">" style="cursor:pointer;">
<td valign="center" align="left" hljs-string">">XWFMSLETLETTURA_E</td>
<td valign="center" align="left" hljs-string">"> Leitura</td>
<td align="left" hljs-string">" valign="center" nowrap=""></td>
<td valign="center" align="left" hljs-string">"></td>
<td align="left" width="1" hljs-string">" valign="center" tooltip=""></td>
<td valign="center" align="center" hljs-string">"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" hljs-string">" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',2,'','','','');" hljs-string">">
<div><img src="r/std/icons/menu64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',3,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',3,'','','');" onm ousedown="if(event.ctrlKey) this.cancelEvent=true;" hljs-string">" style="cursor:pointer;">
<td valign="center" align="left" hljs-string">">XWFMSLETID_XWFMTDCO_E</td>
<td valign="center" align="left" hljs-string">"> Diametro do HD</td>
<td align="left" hljs-string">" valign="center" nowrap=""></td>
<td valign="center" align="left" hljs-string">"></td>
<td align="left" width="1" hljs-string">" valign="center" tooltip="[XGABAIMPID_XWFMTDCO]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',3,'','','','');" hljs-string">" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" hljs-string">"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" hljs-string">" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',3,'','','','');" hljs-string">">
<div><img src="r/std/icons/menu64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',4,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',4,'','','');" onm ousedown="if(event.ctrlKey) this.cancelEvent=true;" hljs-string">" style="cursor:pointer;">
<td valign="center" align="left" hljs-string">">XWFMSLETSIGILLO_E</td>
<td valign="center" align="left" hljs-string">"> Filtro</td>
<td align="left" hljs-string">" valign="center" nowrap=""></td>
<td valign="center" align="left" hljs-string">"></td>
<td align="left" width="1" hljs-string">" valign="center" tooltip="[XWFMAIMPSIGILLO]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',4,'','','','');" hljs-string">" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" hljs-string">"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" hljs-string">" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',4,'','','','');" hljs-string">">
<div><img src="r/std/icons/menu64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',5,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',5,'','','');" onm ousedown="if(event.ctrlKey) this.cancelEvent=true;" hljs-string">" style="cursor:pointer;">
<td valign="center" align="left" hljs-string">">XWFMSLETID_XWFMTUBI_E</td>
<td valign="center" align="left" hljs-string">"> Padr?o de instala??o do HD</td>
<td align="left" hljs-string">" valign="center" nowrap=""></td>
<td valign="center" align="left" hljs-string">"></td>
<td align="left" width="1" hljs-string">" valign="center" tooltip="[XWFMAIMPID_XWFMTUBI]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',5,'','','','');" hljs-string">" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" hljs-string">"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" hljs-string">" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',5,'','','','');" hljs-string">">
<div><img src="r/std/icons/menu64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',6,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',6,'','','');" onm ousedown="if(event.ctrlKey) this.cancelEvent=true;" hljs-string">" style="cursor:pointer;">
<td valign="center" align="left" hljs-string">">XGABSLETTELCOUPEQUIP_E</td>
<td valign="center" align="left" hljs-string">"> Equipamento de telemetria acoplado</td>
<td align="left" hljs-string">" valign="center" nowrap=""></td>
<td valign="center" align="left" hljs-string">"></td>
<td align="left" width="1" hljs-string">" valign="center" tooltip="[XGABAIMPTELCOUPEQUIP]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',6,'','','','');" hljs-string">" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" hljs-string">" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" hljs-string">"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" hljs-string">" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',6,'','','','');" hljs-string">">
<div><img src="r/std/icons/menu64.png" hljs-string">" draggable="false" align="absmiddle"></div>

uj5u.com熱心網友回復:
假設您使用的是“電子表格”gem - 該指南提供了您在此處查看如何使用回圈所需的所有資訊 - https://github.com/zdavatz/spreadsheet/blob/master/GUIDE.md
sheet.each 1 do |row|
expected_tooltip = row[1]
expect(page).to have_css("tr.tvRow:nth-child .tvCell:nth-child(6) img[tooltip='#{expected_tooltip}']")
end
這就是驗證電子表格中的所有工具提示文本是否存在于頁面上所需要做的一切。
如果您需要驗證它們是否按特定順序(為什么?),那么您可能需要類似的東西
xls_offset = 1
row_offset = 2
sheet.each_with_index(xls_offset) do |row, idx|
expected_tooltip = row[1]
expect(page).to have_css("tr.tvRow:nth-child(#{row_offset idx}) .tvCell:nth-child(6) img[tooltip='#{expected_tooltip}']")
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/498157.html
