سؤال

وأنا أحاول التقاط معرف عنصر الذي سيتم إنشاؤه بشكل عشوائي. يمكنني بنجاح القبض على قيمة معرف العنصر لي مثل هذا ...

| storeAttribute | //div[1]@id | variableName |

والآن لي المتغير سوف يكون شيء من هذا القبيل ...

divElement-12345

وأريد أن إزالة 'divElement-' حتى أن المتغير أنا غادرت مع هو '12345' حتى أستطيع أن استخدامها في وقت لاحق لتحديد "النموذج 12345" عنصر المرتبطة به ... شيء من هذا القبيل:

| type | //tr[@id='form-${variableName}']/td/form/fieldset/p[1]/input | Type this |

وكيف يمكن أن أكون قادرا على تحقيق ذلك؟

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

المحلول

ولديك خياران في السيلينيوم، XPath و محدد CSS. لقد قرأت أن CSS محدد هو أفضل للقيام الاختبارات في كل من فايرفوكس وإنترنت إكسبلورر. استخدام أحدث إصدار من السيلينيوم IDE (3/5/2009) لقد كان النجاح مع استخدام storeEval الذي يقيم تعبيرات جافا سكريبت، مما يتيح لك الوصول إلى جافا سكريبت وظائف سلسلة.

وكسباث:

storeAttribute | //div[1]@id                                            | divID
storeEval      | '${divID}'.replace("divElement-", "")                  | number
type           | //tr[@id='form-${number}']/td/form/fieldset/p[1]/input | Type this

وCSS محدد:

storeAttribute | css=div[1]@id                                                     | divID
storeEval      | '${divID}'.replace("divElement-", "")                             | number
type           | css=tr[id='form-${number}'] > td > form > fieldset > p[1] > input | Type this

نصائح أخرى

وهناك العديد من الوظائف في XPATH التي يجب ان تحل مشكلتك. على افتراض "divElement-" هو ثابت لن يتغير والذي تستخدمه كسباث 2.0، أود أن أقترح:

وفرعية بعد (شعبة [1] / @ معرف / النص ()، "divElement -")

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