- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在循环中使用 isVisible() 来为我的 iOS UIAutomation 创建一个 waitForElement 类型的函数。当我尝试使用以下代码时,在弹出新屏幕时等待元素时失败。该元素显然在那里,因为如果我在点击该元素之前执行延迟(2),它就可以正常工作。其他人是如何做到这一点的,因为我不知所措......
这是我正在使用的 waitForElement 代码:
function waitForElement(element, timeout, step) {
if (step == null) {
step = 0.5;
}
if (timeout == null) {
timeout = 10;
}
var stop = timeout/step;
for (var i = 0; i < stop; i++) {
if (element.isVisible()) {
return;
}
target.delay(step);
}
element.logElement();
throw("Not visible");
}
最佳答案
您正在将“元素”对象传递给此函数。当函数启动时,您的“元素”对象具有 isVisible 属性 false 或者当您传递的屏幕上没有这样的对象时 [object UIAElement Nil]。任何时候尝试获取此类对象的属性 isVisible 都将始终返回 false。
如果你想让这个函数起作用,你需要将“元素”作为一个对象传递给你的函数。所以不是
if (element.isVisible())
您需要先获取元素对象并尝试获取 isVisible() 属性。
if (target.manWindow().elements()[0].isVisible())
此更改后,将不再需要传递“元素”对象,因为此函数将仅适用于一个元素。
要使此函数适用于任何元素,您需要传递的不是“元素”对象,而是返回要检查的“元素”对象的函数。这是一个例子:
var target = ...;
var mainWindow = ...;
//function that returns firstObject
var firstElement = function()
{
return mainWindow.elements()[0];
}
//function that returns secondObject
var secondElement = function()
{
return mainWindow.elements()[1];
}
//这是您需要在“等待”功能中更改的内容。改变
if (element.isVisible())
与
if (element().isVisible())
函数调用示例:
waitForElement(firstElement, 10, 1);
waitForElement(secondElement, 10, 1);
注意:如果您使用 firstElement() 调用您的 waitForElement 函数 - 函数将失败并出现相同的错误。这会使您的测试更加复杂,但它确实有效。
关于javascript - iOS UIAutomation UIAElement.isVisible() 抛出陈旧的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7044554/
我有一个具有以下结构的 View : GrandView -Parent View1 -Parent View2 --Child View1 --Child View2 subview 几乎占据了 P
我正在尝试在循环中使用 isVisible() 来为我的 iOS UIAutomation 创建一个 waitForElement 类型的函数。当我尝试使用以下代码时,在弹出新屏幕时等待元素时失败。该
我注意到一段时间前编写的 UIAutomation 脚本中有一些奇怪的行为,但我已经有一段时间没有运行了。我的断言失败了;在进行一些挖掘之后,我发现在迭代 UIAElement 的 .elements
我在一些地方看到过这个 UIAElement 类,但我找不到太多关于它的文档。 这是由 Interface Builder 生成的吗?例如,如果我将一个 UIWebView 拖到 Interface
我是一名优秀的程序员,十分优秀!