السيلينيوم: هل من الممكن لسلسلة عنصر XPath مع متغير؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

ووكسباث من عناصر بلدي أصبحت في غاية الصعوبة في القراءة.

و// شعبة [@ معرف = 'main_content'] / شعبة [2] / شعبة [2] / شعبة [2] / شعبة [4] / الجدول / TBODY / آر [2] / الدفتيريا / شكل / مجموعة حقول / ص [1] / الإدخال

وسيكون من الجميل إذا كان بإمكاني تخزين أكثر من ذلك كمتغير واستخدامها في وقت لاحق من هذا القبيل:

و| assertElementPresent | $ {myForm}. / مجموعة حقول / ص [1] / الإدخال |

هل ما يشبه هذا ممكن؟ من شأنه أن يجعل بلدي التجارب أسهل بكثير لقراءة!

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

المحلول

أنت <م> حقا يجب ترسيخ ESPRESSIONS السيلينيوم بك في ID من العناصر بدلا من ذلك. في 2 أشهر، لا أحد يذهب لديهم أدنى فكرة عما النقاط XPath ل، خصوصا إذا ما تم كسر الاختبار في وقت كنت في حاجة لمعرفة ذلك. نحن عادة إضافة معرف لعنصر فقط لجعل اختبار أسهل. لقد تعلمنا أن نقبل بأن نكتب كود جافا بطريقة خاصة لجعلها قابلة للاختبار، وأعتقد أن كل شيء على مايرام لHTML جدا.

نصائح أخرى

هل يمكن أن مجرد كتابة:

store | //div[@id='main_content']/div[2]/div[2]/div[2]/div[4]/table/tbody/tr[2]/td/form | myForm
assertElementPresent | xpath=${myForm}/fieldset/p[1]/input

وكما قال Krosenvold، ومع ذلك، مسارات XPath متى يمكن أن تكون هشة جدا. إذا كان لديك تشعر بالقلق إزاء قراءة في التعليمات البرمجية، وتريد كل ما تبذلونه من تحديد المواقع في ملف واحد حيث يمكنك إجراء تغييرات متتالية، قد ترغب في النظر في استخدام خريطة UI-العنصر.

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