Python/JS'de oldukça yeni ve ayrıca Selenium/WebDriver ile otomatik test yapıyorum, ama biraz ilerleme kaydettim!Selenium/WebDriver betiği uyarı ile kesintiye uğrar - istisna "Mesaj: u'Modal dialog mevcut" "
Şimdi bir noktada sıkışıp kaldım ve gerçekten sinir bozucu.
Test ettiğim web sitesi ürünleri satıyor. Benim komut dosyası rastgele gezinmek ve ödeme sayfasına ulaşmak taklit verinin doldurun kullanarak veri aktarabilmek başardı:
Genelliklebrowser.execute_script("document.Form.submit(); return true;")
browser.execute_script("processPayment(); return true;")
, bir Öde şimdi düğmesi yoktur ve aynı istisna o eleman sonuçlarını tıklayıp WebDriver (WebElement yok) aracılığıyla Tamam/İptal üzerine tıklamanın bir yolu yoktu, ancak bu JS kodunu yürütmenin onu geçebileceğini anladım. Yeni yüklediğim sayfam (verileri gönderdikten ve gönderdikten sonra onayladıktan sonra) bir onay ve tüm doğru veri yükleriyle birlikte, ancak Python betiği kesintiye uğradı ve teste devam edemiyorum.
Bunun için bir çözüm var mı? Ne ben yapmak istiyorum kullanarak vb onlara
çalıştı depolanması, değerlerini baskı, konumlandırma elemanlarını devam Girdiğiniz kalıcı iletişim görmezden sonra yük ve yanındaki onay sayfasının beklemektir:
wait = ui.WebDriverWait(browser,10)
wait.until(lambda browser: browser.title.lower().startswith('Your Receipt'))
print(browser.title)
ama betik kesintiye uğradı. Üzgünüm, eğer bu cevaplanmışsa, ama bulamadım ve ayrıca yeni bir çocuk benim!
Şimdiden teşekkürler!
EDIT:
sonuçları nelerin Benim durumumda Sadece Uyarısı ithal etmek gerekir başlayanlar için benim kod biraz
browser.execute_script("document.roomBookingForm.submit(); return true;")
alert = browser.switch_to_alert()
alert.dismiss()
browser.execute_script("processPayment(); return true;")
Not değiştirilir. Eğer Uyarısı ithal etmek gerekir (benim gibi) yeni başlayanlar için
from selenium.webdriver.common.alert import Alert
alert.dismiss() yöntemi benim için çalıştı uyarı işleyicisi ekledi. Teşekkürler Tihomir S. –
Elbette alert.dismiss() "iptal" düğmesine basar; "Tamam" a basmak için alert.accept() öğesini kullanın. –
ve cevaptaki tarayıcı "webdriver" örneğidir. – Sinux