2016-03-30 28 views
3

Robot Framework + Selenium2Library kullanarak web için bir kabul testi yazıyorum. Buradaki nokta, web'in otomatikleştiremediğim bazı giriş alanları (CAPTCHA) içermesi ve test yaparken bu özelliği kapatmak için satıcımın söyleyememesi. Bu yüzden bu alanı elle girmek zorundayım. Şimdi bu yapıyorum: Ben Sleep 10 Robot Framework söylediğimdeRobot Çerçevesi ile manuel giriş (Captcha)?

Create User 
    [Arguments]   ${username} ${password} 
    Open Browser   ${URL}   ${BROWSER} 
    Input Text    username  ${username} 
    Input Text    password  ${password} 
    Sleep     10    # XXX input CAPTCHA manually here! 
    Click Button   submit 
    Page Should Contain ${username} has been created. 

Ben girdi CAPTCHA ettik, şimdiye kadar çok iyi. Ama merak ediyorum, Robot Framework'e süresiz olarak beklemesini söylemek, sonra CAPTCHA'nın girişini bitirdikten sonra görevi otomatikleştirmeye devam etmek var mıdır? Sen uyku ve düğme tıklayarak çıkarıp bunları kendiniz yapabilirsiniz

:

+0

Devam etmeden önce seçeneklerden herhangi bir sayı kadar beklemek bunu söyleyebilirdi. Örneğin, isteğe bağlı veya gerekli olmayan bir alanda bazı rasgele metinleri girme. Ben olsaydım, o zaman adı alanında odağı koymak ve bu konuda hiçbir fikri eklemek orada – shicky

cevap

2

sadece Robot Framework ile birlikte gelen iletişim kütüphanede bu amaçla a keyword yoktur.

Execute Manual Step Please complete the CAPTCHA portion of the form. 
+0

gelen o devam edene kadar beklemek olsun size, captcha doldurmak testin başında, böylece muhtemelen sırasını değiştirecek anahtar kelime, teşekkürler @ ombre42 – shicky

3

Ben birkaç seçenek görebilirsiniz. Sayfayı Ayrıca Diyaloglar-kütüphaneden Pause Yürütme kelime kullanabilirsiniz düğmesine

Create User 
    [Arguments]     ${username} ${password} 
    Open Browser    ${URL}   ${BROWSER} 
    Input Text     username  ${username} 
    Input Text     password  ${password} 
    Log       Waiting for CAPTCHA 
    Wait Until Page Contains ${username} has been created. timeout=3600 

göndermek itilmiş olduktan sonra da devam etmek içeriyor kadar Sonra bekleme kullanabilirsiniz. Bu, bir açılır pencerede Tamam'ı tıklayana kadar yürütmeyi durdurur.

Create User 
    [Arguments]     ${username} ${password} 
    Open Browser    ${URL}   ${BROWSER} 
    Input Text     username  ${username} 
    Input Text     password  ${password} 
    Pause Execution    Enter captcha 
    Click Button    submit 
    Page Should Contain   ${username} has been created. 

Düşünebildiğim en otomatik yol bir CAPTCHA çözüm hizmeti kullanmaktır. Sayfanızın ekran görüntüsünü gönderdiğiniz ve çözülmüş bir CAPTCHA geri aldığınız bir API'ya sahip olduklarına inanıyorum. Onları hiç denemedim ve yazılımınızın ekran görüntülerini paylaşma bir seçenek olmayabilir.

0

Ayrıca, get value from user komutunu da kullanabilirsiniz.

Açılır pencereyi açar ve kullanıcı, kullanıcı captcha değerini girdikten sonra, bu değeri captcha penceresine eklediğinde ve sonraki işlem başladığında metin değerini (örneğin, sayfada bulunan captcha'yı girin) eklemesini söyler.

Kod geçerli:

#Use  Library Dialogs 
    open browser  http://sitename  ff 
    input text id=name-id anytext 
    ${Captcha} = get value from user Enter Captcha none none 
    input text id=captcha-id ${Captcha} 
    click element id=submit-id 

Not: Kullanım "Libray'deki İletişim Kutuları" başlangıçta