在AppiumLibrary
中,从版本1.4.5开始,引入了一个非常方便的关键字Element Should Be Visible
。但我也在寻找该关键字的相反版本,这类似于Element Should Not Be Visible
。由于AppiumLibrary
还没有,我们有什么办法可以做到这一点吗?
答案 0 :(得分:1)
总是有可能扩展库的python代码,这应该不是很困难。您基本上只需要克隆Element Should Be Visible
关键字定义并更改条件以执行相反的操作。
但是,如果您不可能这样做,也许您可以将关键字Run Keyword And Expect Error与您提到的关键字Element Should Be Visible
结合使用。在不可见的元素上使用此关键字会引发错误,在这种特殊情况下会出现错误。
尽管如此,这是一个愚蠢的解决方法,无法帮助您测试的可读性,您应该首先考虑扩展库本身。
答案 1 :(得分:1)
感谢Verv指南。我尝试了他建议的两种方法,两者似乎都非常简单。为了将来参考,我在这里解释这两种方法。
方法1:
在AppiumeLibrary/keywords
目录下,有一个名为_element.py
的文件,用于定义Element Should Be Visible
关键字。我能够克隆它来创建我正在寻找的新关键字。
以下是定义Element Should Be Visible
def element_should_be_visible(self, locator, loglevel='INFO'):
"""Verifies that element identified with locator is visible.
Key attributes for arbitrary elements are `id` and `name`. See
`introduction` for details about locating elements.
New in AppiumLibrary 1.4.5
"""
if not self._element_find(locator, True, True).is_displayed():
self.log_source(loglevel)
raise AssertionError("Element '%s' should be visible "
"but did not" % locator)
在上面的代码段旁边,您可以添加以下代码段来定义新关键字Element Should Not Be Visible
def element_should_not_be_visible(self, locator, loglevel='INFO'):
"""Verifies that element identified with locator is visible.
Key attributes for arbitrary elements are `id` and `name`. See
`introduction` for details about locating elements.
New in AppiumLibrary 1.4.5
"""
if self._element_find(locator, True, True).is_displayed():
self.log_source(loglevel)
raise AssertionError("Element '%s' should not be visible "
"but did" % locator)
方法2
如果您不想扩展现有的库,可以使用现有关键字的组合,如下所示:
${isVisible}= Run Keyword And Return Status Element Should Be Visible 'someElementSelector'
Should Be Equal ${isVisible} ${FALSE}