我正在尝试构建一个基于pytest_bdd的测试自动化框架。我可以在我的Social Networking Site上执行许多功能,在那里我正在执行我的自动化。
所以,我的用例是,在登录后,我需要搜索用户并点击“添加朋友”按钮。如果我尝试手动提供特定的XPath,我能够做到。但是当我搜索同名的多个用户时,比如‘Nitin Kumar’,有两个同名的用户。我想把他们两个都添加为我的朋友,但我无法点击他们。
我的步骤如下:
- 登录
- 搜索用户(Nitin Kumar)
- 点击‘Add Friend’(添加朋友)按钮-这就是我遇到问题的地方
Test_nitsanon.py中的必要代码片段
@when('the user clicks on add as friend besides a user')
def sendFrndReq(browser):
res, xp = clickBtn_multiple(browser, sendReq_addFrndBtn)
print('\n\n\n Sent Friend Request to all users with mentioned name >>> DEBUG\n', res, xp)
Functions.py中的代码片段
# Clicks a button on every iteration
def clickBtn_multiple(browser, xpath):
wait(3)
res = []
xp = []
s = browser.find_elements(By.XPATH, xpath)
for i in s:
res.append(i.text)
if xpath.is_displayed():
a = clickBy_Xpath(browser, xpath)
xp.append(a)
else:
continue
return res, xp
来自xpaths.py的代码片段
# Send friend request
sendReq_addFrndBtn = "//div[text()='" + sendReq_name + "']/ancestor::div/div/div/div/div/div[2]/child::div[2]/div/form/div/button"
Variables.py中的代码片段
nitsanonURL = "http://nitsanon.epizy.com/"
userValue = 'nitin'
passValue = 'kumar'
sendReq_name = "Nitin kumar"
这个代码有什么问题?我想是我做的函数有问题吧!RETURN语句返回一个空列表。Check the output image here。
1条答案
按热度按时间jjhzyzn01#
我已经增强了functions.py文件的代码。但是,我还获得了StaleElementReferenceException,用于检查不同的功能。
以下是更新后的代码:
我现在正在尝试实现“UnFriend”功能。导航到朋友选项卡并取消对具有特定名称的用户的好友关系。
Test_nitsanon.py的代码片段
Xpaths.py的代码片段
我处理的控制台异常的输出是here。
这是因为在点击一次“取消好友”按钮后,页面会刷新并导航到不同的页面。
我有一个逻辑,在第一次迭代期间每次都检查值为1(比方说),并将值保存到下一次迭代。在此之前,我们将导航回Friends选项卡,再次返回到该函数以进行剩余的迭代。但是,我不能实现这一点。
需要答案。睡不着。我非常好奇在不使用任何OOPS概念的情况下构建测试自动化框架。