を投げずにXPathの要素を見つけるルビーセレンウェブドライバー:私はルビーセレンウェブドライバを使用してテストしようとしていますhtmlの下に持ってはNoSuchElementException
<div class="container-fluid container-results">
<div class="result-row" id="0">
<ul>
<li class="process-status-column upload-success-icon">
<svg class="glyphicon-upload-green" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#doc_upload"></use>
</svg>
</li>
<li class="file-label-column"><span>validated.txt</span></li>
<li class="client-company-column"><span>test-client</span></li>
<li class="reference-column"><span>Ref001</span></li>
</ul>
</div>
<div class="result-row" id="1">
<ul>
<li class="process-status-column upload-error-icon">
<svg class="glyphicon-exclamation" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#exclamation"></use>
</svg>
</li>
<li class="file-label-column"><span>Error.txt</span>
<div class="attachment-row">This invoice contains an error</div>
</li>
<li class="client-company-column"><span>test-client</span></li>
<li class="reference-column"><span>Ref002</span></li>
</ul>
</div>
<div class="result-row" id="2">
<ul>
<li class="process-status-column upload-pending-icon">
<svg class="glyphicon-spin" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#refresh"></use>
</svg>
</li>
<li class="file-label-column"><span>Pending.txt</span></li>
<li class="client-company-column"></li>
<li class="reference-column"></li>
</ul>
</div>
</div>
私が一致する、ul
要素selectedLine
として変数を見つけようとしています私は、パラメータ値unique_field_value
しかし、私としてvalidated.txt
を渡した場合、入力パラメータごととしてspan
値はunique_field_value
コードの上
selectedLine = nil
rows = driver.find_elements(:css => "div.container-fluid.container-results >div.result-row >ul")
rows.each do |row|
element = row.find_element(:xpath => "./li/span[contains(., '#{unique_field_value.to_s.strip}')]")
if(!element.nil?)
selectedLine = row
end
end
が正常に動作しますF私はError.txt
またはPending.txt
午前getttig例外の下を通る
no such element: Unable to locate element: {"method":"xpath","selector":"./li/span[contains(., 'Error.txt')]"} (org.openqa.selenium.NoSuchElementException)
私は繰り返しを続けますか私のコードは、rows
の最初の反復でunique_field_value
パラメータを照合し、それがものを見つけるdoesntの場合は例外をthrowning span
要素を検索しようとしていますNoSuchElementException
例外をスローせずrows
のすべての要素の上に
以下で作業 '要素が= row.find_elementかどうかを確認でした(:のxpath => '// * [テキスト()= "#{unique_field_value.to_s.strip}"]')'一部と一致しました素子? –
Rubyでは、文法上、変数やメソッドにcamelCaseを使用していません。 ItIsAReadabilityThingなので、 'selectedLine'は' selected_line'です。 –