عنصر XPath الذي يحتوي على سمة ووالد الوالد الذي يحتوي على سمة أخرى

StackOverflow https://stackoverflow.com/questions/2181406

سؤال

هذه هي أول مشاركة لي هنا ولأنني رأيت العديد من الإجابات الرائعة ، اعتقدت أنني سأجربها.

أحاول استخدام XPath للحصول على عنصر معين في مستند HTML. فيما يلي مثال يستند إلى صفحة ويب Google:

<html>
  <head>
    <title>XPath Test</title>
  </head>
  <body>
    <form name='f'>
      <table>
        <tbody>
          <tr>
            <td>
              <input name='q' type="text" />
            </td>
          </tr>
        </tbody>
      </table>
    </form>
  </body>
</html>

باستخدام المثال أعلاه (الذي تم تبسيطه لأغراض طلب المساعدة) ، أود أن أكون قادرًا على العثور على عنصر الإدخال الذي اسمه = Q "ولديه سلف يبلغ من العمر 5 آباء باسم = 'f '.

على سبيل المثال ، إذا كنت سأفعل ذلك في بناء جملة SWAT ، وهي مكتبة اختبار أتمتة الويب مفتوحة المصدر موجودة في http://ulti-swat.wikispaces.com, ، سيكون بناء الجملة على النحو التالي:

| AssertElementExists | التعبير | name = q ؛ parentelement.parentElement.ParentElement.ParentElement.ParentElement.name = f | input |

لقد بدأت للتو في تعلم XPath وأحاول فهم كيفية الجمع بين المتنبئين مع المحاور. هل من الممكن القيام بهذه التعبيرات مع XPath؟ إذا كان الأمر كذلك ، فهل يمكن لأي شخص على دراية بالمساعدة؟

هل كانت مفيدة؟

المحلول

يمكنك أن تفعل:

//input[@name='q' and ancestor-or-self::*[@name='f']]
// -- input element whose name='q' and who has an ancestor with the name='f'

أو

//input[@name='q' and ../../../../../../*[@name='f']]
// -- input element whose name='q' and who is 5 parents up with the name='f'

يمكنك استخدام سطح المكتب هذا XPath Visualizer لاختبار تعبيرات XPath الخاصة بك. أ يمكن العثور على البرنامج التعليمي الأساسي هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top