j'ai le code html ci-dessous dans laquelle essaie de trouver tous les svg
éléments à l'intérieur div.container-fluid.container-results >div >ul >li
seulement et je ne veux pas que les éléments svg à l'intérieur div.container-fluid.container-results >div >ul >div.result-controls
pour un paramètre row_number
donné où row_number représente div[contains(@class,'invoice-result-row')][contains(@id,#{row_number.to_i-1})]
sélénium Ruby WebDriver trouver des éléments svg spécifiques
<div class="container-fluid container-results">
<div class="invoice-result-row" id="0">
<ul>
<li class="invoice-process-status-column">
<a href="javascript:void(0)" title="Submitted">
<svg class="glyphicon-upload-green SubmittedIcon" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#doc_upload"></use>
</svg>
</a>
</li>
<li class="invoice-process-status-column">
<a href="javascript:void(0)" title="Sent">
<svg class="glyphicon-upload-green SentIcon" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#doc_upload"></use>
</svg>
</a>
</li>
<li class="invoice-process-status-column">
<a href="javascript:void(0)" title="Pending">
<svg class="glyphicon-upload-green PendingIcon" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#doc_upload"></use>
</svg>
</a>
</li>
<li class="invoice-file-label-column"><span>validated.txt</span></li>
<li class="invoice-client-company-column"><span>QA-CP-PP-TRUNK</span></li>
<li class="invoice-reference-column"><span>T12345638800</span></li>
</ul>
</div>
<div class="invoice-result-row" id="1">
<ul>
<li class="invoice-process-status-column">
<a href="javascript:void(0)" title="Processing">
<svg class="glyphicon-spin ProcessingIcon" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#refresh"></use>
</svg>
</a>
</li>
<li class="invoice-process-status-column">
<a href="javascript:void(0)" title="Delivered">
<svg class="glyphicon-upload-green DeliveredIcon" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#doc_upload"></use>
</svg>
</a>
</li>
<li class="invoice-file-label-column"><span>Pending.txt</span></li>
<li class="invoice-client-company-column"></li>
<li class="invoice-reference-column"></li>
<div class="result-controls">
<li class="invoice-delete-column"></li>
</div>
</ul>
</div>
<div class="invoice-result-row" id="2">
<ul>
<li class="invoice-process-status-column">
<a href="javascript:void(0)" title="Submitted">
<svg class="glyphicon-upload-green SubmittedIcon" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#doc_upload"></use>
</svg>
</a>
</li>
<li class="invoice-file-label-column"><span>validated - Copy.txt</span></li>
<li class="invoice-client-company-column"><span>QA-CP-PP-TRUNK</span></li>
<li class="invoice-reference-column"><span>T12345638799</span></li>
<div class="result-controls">
<div class="attachment">
<li class="invoice-add-attachment-button-column"><a><button>ADD ATTACHMENTS</button></a></li>
<input type="file" multiple="" style="display: none;">
</div>
<li class="invoice-sign-button-column"><a href="javascript:void(0)"><button>SIGN</button></a></li>
<li class="invoice-draft-button-column"><a><button>DRAFT</button></a></li>
<li class="invoice-delete-column">
<a href="javascript:void(0)" title="Delete">
<svg class="glyphicon-trash deleteIcon" viewBox="0 0 100 100">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trash"></use>
</svg>
</a>
</li>
</div>
</ul>
</div>
</div>
Je suis en train de faire cela en Ruby en utilisant Selenium wendriver comme ci-dessous mais son lancer no such element: Unable to locate element: {"method":"tag name","selector":"svg"}
sur les éléments li
qui ne possède pas l'élément svg
. Je viens juste de commencer la programmation de ruby avec du sélénium. Quelqu'un peut-il m'aider à résoudre ce problème?
Pouvez-vous essayer d'utiliser un xpath pour 'SubmittedIcon' comme' 'svg [@ class = 'glyphicon-upload-green SubmittedIcon']' –
'div.container-fluid.container-résultats> div> ul> li> a> svg' cela vous mènera à svg mais il ne sera pas unique –
@KishanPatel Je ne veux pas que ça code dur, il faut qu'il soit assez générique pour que mon script sélénium puisse être exécuté sur des pages différentes ... oui j'ai essayé la même chose 'div.container-fluid.container-résultats> div> ul> li> a> svg' mais je ne pouvais pas éliminer les autres éléments' svg' non désirés – RanPaul