2016-11-22 81 views
-1

嘗試利用'def assert_alert_present():函數來在警報存在時自動斷言。想要在Walmart.com的'註冊'按鈕上使用它,默認情況下是這樣的:硒與Python 3

您的密碼必須包含6到12個字符,並且沒有空格。請再試一次。

我故意使用少於6個或超過12個字符,並出現警報。不確定如何爲該警報編寫函數,以便在警報存在時通過,如果警報不存在則失敗。

+0

分享您的代碼,你已經嘗試 – thebadguy

+0

driver.find_element_by_name( 「名字」)。 send_keys( 「瓦薩」) driver.find_element_by_name( 「姓氏」)。send_keys( 「Pupkin」) driver.find_element_by_name( 「電子郵件」)。send_keys( 「[email protected]」) driver.find_element_by_name( 「密碼」 ).send_keys(「VA 。saPupkin1234 「) driver.find_element_by_id(」 註冊提交-BTN「)點擊() #def assert_alert_present(): – Alba

+0

在這個時候,我@ https://www.walmart.com/account/signup – Alba

回答

0

希望這是你在找什麼:

from selenium import webdriver 
from selenium.webdriver.common.by import By 


def assert_alert_present(): 
    driver = webdriver.Chrome() 
    driver.maximize_window() 
    baseurl = "https://www.walmart.com/account/signup" 
    driver.get(baseurl) 

    driver.find_element_by_name("firstName").send_keys("Vasa") 
    driver.find_element_by_name("lastName").send_keys("Pupkin") 
    driver.find_element_by_name("email").send_keys("[email protected]") 
    driver.find_element_by_name("password").send_keys("123") 

    #this will check and verify the alertpopup 
    try: 
     assert driver.find_element(By.ID, "password-help") 
     print "Alert is present" 
    except: 
     print "Alert is not present" 

    driver.find_element_by_css_selector("button.l-margin-top").click() 

    errormessage = driver.find_element_by_css_selector('.error-label').text 

    if errormessage.strip() == "Your password must contain between 6 and 12 characters, with no spaces. Please try again.": 
     print "Error lable is present there " 
    else: 
     print "Error lable is not present on website, Please check the website " 

assert_alert_present() 

會打印出消息:

Alert is present 
Error lable is present there 
+0

Thank You。它運行完美,只是需要澄清一點,我很難通過id找到該警報元素。斷言driver.find_element(By.ID,「password-help」)「當我點擊那個灰色警報時,它就消失了,在我看到同樣的紅色錯誤消息後,在」密碼「輸入「123」的密碼,它在DOM的頂部。 – Alba

+0

感恩節快樂! – Alba

+0

感恩節快樂。div class =「validation-group」data-reactid =「。0.0.1.0.1.3.4.1.0.1」>您的密碼必須介於6到12個字符之間這是html彈出 – thebadguy