2016-11-22 3 views
-1

Пытается использовать 'def assert_alert_present(): функция для автоматизации утверждения при наличии предупреждения. Хотелось бы использовать его на кнопке «Зарегистрироваться» для Walmart.com, где он поступает по умолчанию следующим образом:Selenium with Python 3

Ваш пароль должен содержать от 6 до 12 символов без пробелов. Пожалуйста, попробуйте еще раз.

Я намеренно использую менее 6 или более 12 символов, и появляется предупреждение. Не знаете, как написать функцию для этого оповещения, чтобы она проходила, если предупреждение есть и сбой, если предупреждение отсутствует.

+0

долю ваш код, что вы пытались – thebadguy

+0

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 («пароль»)) .send_keys ("Ва . 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

Спасибо, он отлично работает, просто что-то уточнить. Мне трудно найти этот элемент оповещения по идентификатору ». assert driver.find_element (By.ID, «password-help») ». Когда я нажимаю на этот серый сигнал, он просто исчезает. Единственная ссылка на него, которую я нашел, когда смотрел на такое же красное сообщение об ошибке в поле« Пароль »после вводя пароль «123», был на вершине DOM. – Alba

+0

Happy Thanksgiving! – Alba

+0

Happy Thanksgiving. div class = "validation-group" data-reactid = ". 0.0.1.0.1.3.4.1.0.1"> Ваш пароль должен быть от 6 до 12 символов. это html этого выскакивать – thebadguy