需要验证 table (Python, Selenium) 中的文本
Need to verify text inside a table (Python, Selenium)
自动化的新手,我有几个月的时间并在空闲时间学习。
我正在尝试确认用户名出现在 table 中并且该名称将出现在多行中。
我正在使用这样的东西:
@step('Users homepage my lists created by is only user "{username}"')
def step_impl(context, username):
users_name = context.browser.find_elements_by_xpath(
"//*[@id='apollo-table_wrapper']][contains(text(),'%s')]" % username)
我知道 table 的 xpath 是正确的,但如果我想验证屏幕上是否只有特定的用户名可见,我 运行 遇到了问题。
在下图中,我想进行测试以确保只有 "mike" 的用户出现在页面上。我会在功能文件中调用"mike"...
General idea of the UI
你有一个拼写错误 ]
更改为 //
:
users_name = context.browser.find_elements_by_xpath(
"//*[@id='apollo-table_wrapper']//[contains(text(),'%s')]" % username)
要遍历你可以这样做:
users_names = context.browser.find_elements_by_xpath("//*[@id='apollo-table_wrapper']")
print([i.text for i in users_names if i.text == "Mike"])
# Or you can append to list:
res = []
[res.append(i.text) for i in users_names if i.text == "Mike"]
print(res)
如果我理解你的话,你不想验证网格中的所有名称,并检测是否有任何这些名称不是 "Mike"。您可以使用下面的代码 select 网格中的所有名称,然后验证它们是否与预期的不同
#This will only work if the Xpath bellow selects only the names, if it
#selects other fields from the table it will verify if all the fields are
#"Mike", instead of only the Name fields.
users_name = context.browser.find_elements_by_xpath("//*[@id='apollo-table_wrapper']")
result = true
expectedValue = "Mike"
for x in users_name:
if x.text != expectedValue
result = false
break
#Assert result here
如果这不起作用,请告诉我。
自动化的新手,我有几个月的时间并在空闲时间学习。
我正在尝试确认用户名出现在 table 中并且该名称将出现在多行中。
我正在使用这样的东西:
@step('Users homepage my lists created by is only user "{username}"')
def step_impl(context, username):
users_name = context.browser.find_elements_by_xpath(
"//*[@id='apollo-table_wrapper']][contains(text(),'%s')]" % username)
我知道 table 的 xpath 是正确的,但如果我想验证屏幕上是否只有特定的用户名可见,我 运行 遇到了问题。
在下图中,我想进行测试以确保只有 "mike" 的用户出现在页面上。我会在功能文件中调用"mike"...
General idea of the UI
你有一个拼写错误 ]
更改为 //
:
users_name = context.browser.find_elements_by_xpath(
"//*[@id='apollo-table_wrapper']//[contains(text(),'%s')]" % username)
要遍历你可以这样做:
users_names = context.browser.find_elements_by_xpath("//*[@id='apollo-table_wrapper']")
print([i.text for i in users_names if i.text == "Mike"])
# Or you can append to list:
res = []
[res.append(i.text) for i in users_names if i.text == "Mike"]
print(res)
如果我理解你的话,你不想验证网格中的所有名称,并检测是否有任何这些名称不是 "Mike"。您可以使用下面的代码 select 网格中的所有名称,然后验证它们是否与预期的不同
#This will only work if the Xpath bellow selects only the names, if it
#selects other fields from the table it will verify if all the fields are
#"Mike", instead of only the Name fields.
users_name = context.browser.find_elements_by_xpath("//*[@id='apollo-table_wrapper']")
result = true
expectedValue = "Mike"
for x in users_name:
if x.text != expectedValue
result = false
break
#Assert result here
如果这不起作用,请告诉我。