سؤال

أنا أكتب البرنامج النصي اختبار الويب مع Python (2.6) وآلية (0.1.11). الصفحة التي أعمل بها مع وجود نموذج HTML مع حقل محدد مثل هذا:

<select name="field1" size="1">
    <option value="A" selected>A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
</select>

في ميكانيكز، إذا جربت شيئا مثل هذا:

browser.form['field1'] = ['E']

ثم أحصل على خطأ: ClientForm.ItemNotFoundError: insufficient items with name 'E'

يمكنني القيام بذلك يدويا مع ملحق Firefox "بيانات العبث". هل هناك طريقة للقيام بذلك مع بيثون وآلية؟ هل يمكنني إقناع ميكانيكي بطريقة أو بأخرى أن النموذج لديه فعلا القيمة التي أريد تقديمها؟

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

المحلول

بعد التمثال مع الشجاعة من Clientform، يبدو أنه يمكنك خداعه في إضافة عنصر آخر.

للحصول على حقل محدد، يبدو أن هذا شيء مثل هذا يعمل:

xitem = ClientForm.Item(browser.form.find_control(name="field1"), 
        {'contents':'E', 'value':'E', 'label':'E'})

وبالمثل، لمكافحة زر الراديو

xitem = ClientForm.Item(browser.form.find_control(name="field2"),
        {'type':'radio', 'name':'field2', 'value':'X'})

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

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