- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 UI 测试中,一些 XCUIElement
的 frame 属性被发现,但不是其他人。
下面使用的可访问性标识符在 Storyboard中设置,app
在 setUp()
中初始化如XCUIApplication()
.
这是 Storyboard布局:
测试中使用的两个 UI 元素是文本字段和添加按钮。
以下是相关代码:
func test() {
// given
let mainViewNavigationBar = app.navigationBars[„NavBar“]
let navBarHeight = mainViewNavigationBar.frame.size.height
print("navBarHeight: \(navBarHeight)") // is printed out correctly
let addShoppingItemTextField = app.textFields["TextField"]
let textFieldHeight = addShoppingItemTextField.frame.size.height // error breakpoint here
print("textFieldHeight: \(textFieldHeight)")
}
No matches found for Find: Descendants matching type TextField from input {(
Application, 0x60000019f070, pid: 13114, label: ‚xxx‘
)}
frame
属性,应该为所有
XCUIElement
定义, 在第一种情况下找到,但在第二种情况下没有。
addShoppingItemTextField
是
XCUIElementQuery
当我尝试阅读
frame
时应该可以解决这个问题
textField
的属性(property).
Printing description of addShoppingItemTextField:
Query chain:
→Find: Target Application 0x6080000a6ea0
↪︎Find: Descendants matching type TextField
↪︎Find: Elements matching predicate '"TextField" IN identifiers'
TextField
:
print(textField.accessibilityIdentifier!)
viewDidLoad()
, 并打印出
TextField
正确。
textField
.这为访问
textField
创建了代码。 .然后我替换了 let
addShoppingItemTextField = app.textFields["TextField"]
由(右侧由录音生成):
let addShoppingItemTextField = app.otherElements.containing(.navigationBar, identifier:"WatchNotOK")
.children(matching: .other).element.children(matching: .other).element
.children(matching: .other).element
textField
的可访问性标识符的查询无法正常工作。
let navBarHeight = mainViewNavigationBar.frame.size.height
行出现相同的测试错误(未找到匹配项:匹配谓词“WatchNotOK”IN 标识符的元素) .这确实一直有效。
最佳答案
我联系了 Apple,他们发现了我的错误:
我的主视图 Controller 的 View 有它的 accessibility
属性设置为 true
.这是错误的;它必须设置为 false
:
解释见docs至isAccessibilityElement
:
此属性的默认值为 false,除非接收者是标准 UIKit 控件,在这种情况下该值为 true。
辅助应用程序只能获取有关由可访问性元素表示的对象的信息。因此,如果您实现残障用户应该可以访问的自定义控件或 View ,请将此属性设置为 true。这种做法的唯一异常(exception)是 View 仅用作应可访问的其他项目的容器。这样的 View 应该实现 UIAccessibilityContainer 协议(protocol)并将此属性设置为 false。
一旦我将主视图的可访问性设置为 false,UI 测试就成功了。
关于Xcode UITest 有时找不到 XCUIElement 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48075816/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!