Я тестировал этот код. Все в порядке, включая сценарий ios с неправильным именем пользователя или паролем, пока не дойдет до раздела «Проверка входа». Есть проблема с тем, как написана моя попытка, за исключением того, что написано?
def Login(userName, userPassword):
loginURL = baseURL + 'login/'
feedURL = baseURL + 'feed/'
logging.info('Opens Login Page')
driver.get(loginURL)
sleep(randomTimer)
try:
driver.find_element_by_id('username').send_keys(userName)
driver.find_element_by_id('password').send_keys(userPassword)
sleep(randomTimer)
driver.find_element_by_xpath('//button[text()="Sign in"]').click()
except NoSuchElementException:
logging.error('Was Not Able To Find The Elements')
finally:
# Username or password errors
if driver.find_element_by_xpath('//div[@id="error-for-username"]') or driver.find_element_by_xpath('//div[@id="error-for-password"]'):
logging.error('Username or Password Is Incorrect')
else:
# Login verification
try:
WebDriverWait(driver, 10).until(driver.current_url == feedURL)
logging.info('Logging In Have Succeeded')
except TimeoutException:
logging.error('Logging In Have Failed')
Возникает следующая ошибка:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: //div[@id="error-for-username"]
edit:
def Login(userName, userPassword):
loginURL = baseURL + 'login/'
feedURL = baseURL + 'feed/'
logging.info('Opens Login Page')
driver.get(loginURL)
sleep(randomTimer)
try:
driver.find_element_by_id('username').send_keys(userName)
driver.find_element_by_id('password').send_keys(userPassword)
sleep(randomTimer)
driver.find_element_by_xpath('//button[text()="Sign in"]').click()
except NoSuchElementException:
logging.error('Was Not Able To Find The Elements')
else:
try:
if driver.find_elements_by_xpath('//div[@id="error-for-username"]') or driver.find_elements_by_xpath('//div[@id="error-for-password"]'):
logging.error('Username or Password Is Incorrect')
except NoSuchElementException:
pass
else:
try:
WebDriverWait(driver, 10).until(ec.url_to_be(feedURL))
logging.info('Logging In Have Succeeded')
except TimeoutException:
logging.error('Logging In Have Failed')
finally:
logging.info('Quiting The Driver')
driver.quit()