python - 在 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 文件中的数据的模块。请告诉我我在这段代码中做错了什么,在此先感谢:)
解决方案
您没有正确设置用户名和密码。您还需要在 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")
推荐阅读
- java - 在 mvn azure-webapp:deploy 之后 Azure Web App 未更新
- html - 当表格标题行与数据行位于单独的元素中时,如何实现粘性网格标题?
- stripe-payments - 如何将 Stripe 的 API 的 risk_score 提高到 99?
- python - 对 Python 数据框中的一列求和
- android - jetpack compose 是否使用 drawable-night 文件夹?
- oracle - 使用总列的动态行到列转换
- reactjs - 在类组件中反应 useTranslation 替代方案
- android - 在数据库android中插入时间戳列
- excel - VBA UserForms noModal和Modal交互问题
- javascript - chrome 扩展通过共享本地存储将多条消息传递到外部站点