首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在显示断言iOS元素时,有哪些最佳实践?

在显示断言iOS元素时,有哪些最佳实践?
EN

Stack Overflow用户
提问于 2019-05-06 23:44:45
回答 2查看 427关注 0票数 2

我正在尝试使用Appium/Python为iOS应用程序编写我的第一个UI自动化测试。

我发现当我列出像下面这样的10个断言时,我得到的结果非常不一致……有时它通过了,但通常第三个断言失败,有时第八个断言失败。

代码语言:javascript
复制
assert driver.find_element_by_name('Settings').is_displayed()

我也尝试过使用waits:

代码语言:javascript
复制
driver.wait_for_element_by_name_to_display('Settings')
assert driver.find_element_by_name('Settings').is_displayed()

有没有人知道关于这个问题的任何好的资源?有什么建议或建议吗?

EN

回答 2

Stack Overflow用户

发布于 2019-05-30 08:10:02

有一个很好的util类可以用于这个EC。这是到git documentation的链接

代码语言:javascript
复制
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

然后,您可以这样使用它来检测元素是否存在:

代码语言:javascript
复制
from appium.webdriver.common.mobileby import MobileBy
# time in seconds
timeout = 10
wait = WebDriverWait(driver, timeout)
wait.until(EC.presence_of_element_located((MobileBy.NAME, 'Settings'))

如果您需要检测当前和可见的使用情况:

代码语言:javascript
复制
wait.until(EC.visibility_of_any_elements_located((MobileBy.NAME, 'Settings'))
票数 1
EN

Stack Overflow用户

发布于 2019-05-10 03:39:16

您可以等待目标元素找到,如下所示。

https://github.com/appium/python-client/blob/6cc1e144289ef3ee1d3cbb96ccdc0e687d179cac/test/functional/android/helper/test_helper.py

示例:

代码语言:javascript
复制
from appium.webdriver.common.mobileby import MobileBy
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

TIMEOUT = 3
WebDriverWait(self.driver, TIMEOUT).until(
    EC.presence_of_element_located((MobileBy.ACCESSIBILITY_ID, 'Text'))
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56008481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档