我目前正在使用playright/Python/Pytest,我正在尝试将用户登录作为特定类型的用户角色,然后检查各种按钮是否可见或隐藏。
我正在使用页面对象,并为每个按钮元素设置了属性,即。
@property
def manage_placements_button(self):
return self.page.wait_for_selector("xpath=//h3[normalize-space()='Manage Placements']")
@property
def my_holiday_button(self):
return self.page.wait_for_selector("xpath=//h3[normalize-space()='My Holiday']")
@property
def my_payments_button(self):
return self.page.wait_for_selector("xpath=//h3[normalize-space()='My Payments']")
@property
def my_compliances_button(self):
return self.page.wait_for_selector("xpath=//h3[normalize-space()='My Compliances']")
然后我使用一个验证方法的可见按钮:
def verify_candidiate_can_see(self):
result = self.manage_timesheets_button.is_visible()
result = self.my_payments_button.is_visible() and result
result = self.my_holiday_button.is_visible() and result
result = self.my_compliances_button.is_visible() and result
return result
这可以很好地工作,并将测试中的断言传递回true。
然后,我尝试使用以下方法对隐藏值执行相同操作:
def verify_candidiate_cant_see(self):
result = self.manage_placements_button.is_hidden()
return result
但是我得到了这个错误——等待选择器“xpath=//h3[normalize-space()='manageplacements']”可见
以下是测试:
@pytest.mark.order(2)
def test_candidate_login(context, env):
page = context.new_page()
home_page = HomePage(page)
login_page = LoginPage(page)
login_page.navigate(env)
login_page.login(env, "Candidate")
result1 = home_page.verify_candidiate_can_see()
assert result1 == True
result2 = home_page.verify_candidiate_cant_see()
assert result2 == True
context.close()
我假设我添加了is_hidden它是可以的,因为元素不存在于页面上,但它似乎仍在等待它可见。任何帮助都将不胜感激
您可以等待选择器被隐藏:
return self.page.wait_for_selector("xpath=something", state="hidden")
当元素不存在时将返回,并等待其在页面上隐藏。
请参见此处以供参考。
问题内容: 是否有可能切换元素的可见性,使用功能,或? 你会如何测试一个元素是否还是? 问题答案: 由于问题涉及单个元素,因此此代码可能更合适: 与twernt的建议相同,但适用于单个元素。它与jQueryFAQ中推荐的算法匹配 我们使用jQueryis()与另一个元素,选择器或任何jQuery对象一起检查选定的元素。此方法遍历DOM元素以找到匹配项,该匹配项满足传递的参数。如果存在匹配项,则返回
问题内容: 我不知道如何确定存在于json数组中的元素是否为null。要检查jsonObject本身是否为null,只需使用: 但是,当对象是一个数组并且我想检查该数组的元素之一是否为null时,则不起作用: 数组的元素上也没有isNull方法。如何检查jsonarray中的值是否为null?知道我正在从javascript传递空对象可能会有所帮助。从javascript以json格式传递null
我将一些代码从Gson改为Jackson,在那里我必须检查当前元素的类型是否是原语。 我可以用Gson做这样的事情: 在Jackson中,Json节点类型是
问题内容: 在Swift中,如何检查数组中是否存在元素?Xcode没有针对,,或的任何建议,并且快速搜索本书不会发现任何结果。知道如何检查吗?我知道有一种方法可以返回索引号,但是有没有一种方法可以返回像ruby一样的布尔值? 我需要的示例: 问题答案: 斯威夫特2、3、4、5: 是(用于元素序列的) 协议扩展方法 ,而不是早期版本中的全局方法。 备注: 该方法要求序列元素采用协议。 如果序列元素是
问题内容: 示例:我正在检查是否存在像这样的数组元素: 但是,我不断收到此错误: 当然,我第一次想要实例时,$ instances不会知道密钥。我想我对可用实例的检查是错误的? 问题答案: 您可以使用语言构造或函数。 应该更快一些 (因为它不是函数) ,但是如果元素存在并且具有value,则将返回false 。 例如,考虑以下数组: 和这三个测试,依赖于: 第一个会得到您( 该元素存在,并且不为n
在Swift中,如何检查数组中是否存在元素?Xcode没有关于、或的任何建议,并且在这本书中快速搜索没有任何结果。知道怎么查这个吗?我知道有一个方法返回索引号,但是有没有一个方法像Ruby的那样返回一个布尔值? 我需要的示例: