Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用带有assert概念的if语句_Python_If Statement_Assert - Fatal编程技术网

如何在python中使用带有assert概念的if语句

如何在python中使用带有assert概念的if语句,python,if-statement,assert,Python,If Statement,Assert,我正在尝试的内容:我正在尝试登录上述网站,并通过excel表单传递用户名和密码(我提供了3种不同的登录凭据,希望第一次和第二次通过,第三次失败),我发现,我的excel没有问题,它正确地从excel中获取值 我发现的问题:正如我所说,它正确地从excel获取了详细信息,显示的输出如下: import Utils from selenium import webdriver import time driver = webdriver.Chrome(executable_path="C:/Pr

我正在尝试的内容:我正在尝试登录上述网站,并通过excel表单传递用户名和密码(我提供了3种不同的登录凭据,希望第一次和第二次通过,第三次失败),我发现,我的excel没有问题,它正确地从excel中获取值


我发现的问题:正如我所说,它正确地从excel获取了详细信息,显示的输出如下:

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()

注:您可以访问该网站,这是一个示例网站



我想在Python中如何将'f Statement'与Assert概念一起使用是有问题的。

您忘记了
.text
if element.text=='Home':
行中。因为你搜索了部分文本,所以你应该检查元素中的“Home”是否为
。文本:
谢谢你回复我,你说的是对的,它成功了。但我现在收到了一个不同的错误,我发现,第一次尝试登录成功,但最后没有单击“注销”。由于它不会在第一次登录结束时单击注销,因此第二次尝试登录是不可能的,我不知道我的for循环是否有问题。但在我做出更改之前,循环工作正常。我现在得到的错误---(selenium.common.exceptions.NoSuchElementException:Message:没有这样的元素:找不到元素:{“method”:“css selector”,“selector”:“[id=”email“]”}),所以我知道您在这里调试,但在selenium中,time.sleep(n)是不好的。对于一些罕见的情况,它们往往是巨大的,并且您的测试用例运行非常缓慢。通常,只要有可能,就在页面上等待。其次,因为您使用的是Excel,所以我假设您使用的是windows。VisualStudio有一个优秀的调试器,通过正确的扩展安装,它非常支持Python。VS会向您显示这些变量的所有属性等。它将允许您自己查找“element.text”。Selenium非常棒,但是它有一个艰难的学习曲线。谢谢,是的,我同意,我的一位开发人员同事也这么说。我的问题还没有解决,但正如你所说的,我将在上面提到的行上尝试,甚至使用vs代码
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)