首页 > 解决方案 > 在 Selenium 中使用 python 登录结果的测试用例

问题描述

我正在编写一个示例测试用例来显示页面的登录结果 - http://testing-ground.scraping.pro/login

当我运行测试用例时,所有测试用例都通过了,并且没有一个登录被拒绝。这是我的代码 -

for r in range(2,row+1):
    uname=utils.readData(path,'new',r,1)
    password=utils.readData(path,'new',r,2)
    driver.find_element_by_xpath("//*[@id='usr']").send_keys(password)
    driver.find_element_by_xpath("//*[@id='case_login']/form/input[3]").click()

    if driver.find_element_by_xpath("//*[contains(text(), 'ACCESS DENIED!')]"):
        print("fail")
    else: print("Pass")

        utils.writeData(path,'new',r,3,"Test Fail")

utils 是我读取存储在 excel 文件中的数据的模块。请告诉我我在这段代码中做错了什么,在此先感谢:)

标签: pythonseleniumselenium-webdriverautomated-tests

解决方案


您没有正确设置用户名和密码。您还需要在 h3 标记中搜索文本,因为搜索文本始终出现在主页中。在搜索文本时还要使用 find_elements_by_xpath(复数)以防止异常。

这段代码对我有用:

driver = webdriver.Chrome('./chromedriver')
target_url = 'http://testing-ground.scraping.pro/login'
driver.get(target_url)

uname="admin"
password="12345"
driver.find_element_by_xpath("//*[@id='usr']").send_keys(uname)
driver.find_element_by_xpath("//*[@id='pwd']").send_keys(password)
driver.find_element_by_xpath("//*[@id='case_login']/form/input[3]").click()

if len(driver.find_elements_by_xpath("//h3[contains(text(), 'WELCOME')]")):
    print("Pass")
else: 
    print("Fail")

推荐阅读