Как использовать оператор if с концепцией assert в python - PullRequest
0 голосов
/ 15 февраля 2020
import Utils
from selenium import webdriver
import time

driver = webdriver.Chrome(executable_path="C:/Pra/deep/chromedriver.exe")
driver.maximize_window()
driver.implicitly_wait(2)
driver.get("http://automationpractice.com/index.php?controller=authentication&back=my-account")
time.sleep(2)

path = "C:\Pradeep\Sandeep\personal\Excel\logindetails.xlsx"
rows = Utils.getRowCount(path,'Sheet1')

for r in range(2,rows+1):
    username = Utils.readData(path,"Sheet1",r,1)
    password = Utils.readData(path,"Sheet1",r,2)

    driver.find_element_by_id("email").send_keys(username)
    driver.find_element_by_id("passwd").send_keys(password)

    driver.find_element_by_id("SubmitLogin").click()
    time.sleep(10)

    element = driver.find_element_by_partial_link_text('Home')
    assert element.text == 'Home'

    if element == 'Home':
        print("Test Passed")
        Utils.writeData(path,"Sheet1",r,3, "Test Passed")
    else:
        print("Test Failed")
        Utils.writeData(path, "Sheet1", r, 3, "Test Failed")

        driver.find_element_by_xpath("//a[@class='logout']").click()
        time.sleep(7)

driver.quit()

Что я пытаюсь сделать: Я пытаюсь войти на вышеуказанный веб-сайт и передаю имя пользователя и пароль через таблицу Excel (я дал 3 различных учетных данных для входа в систему, ожидая передачи в первый и второй раз и в третий раз провалился) И я обнаружил, что с моим Excel нет проблем, и он правильно принимает значения из Excel


Проблема, которую я нахожу: Как я уже сказал, он корректно берет данные из Excel, выводится следующее:

Test Failed
Test Failed
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"partial link text","selector":"Home"}
  (Session info: chrome=79.0.3945.130)

Примечание: вы можете получить доступ к веб-сайту, это пример.


Я думаю, есть проблема с тем, как я использую 'Statementf Statement' с концепцией Assert в Python '

...