2012-01-10 72 views
2

我在logElementTree输出以下项目:iOS的自动化:如何挖掘按钮没有ID

UIAButton: rect:{{20, 427}, {41, 41}} 

UIAButton: rect:{{140, 427}, {41, 41}} 

这些按钮都没有标识,没有名字,并在厦门国际银行中没有画出。在我的自动化测试脚本中,我只使用索引(类似于target.frontMostApp().mainWindow().buttons()[7].tap()

但是,因为索引正在改变,所以这行不会总是有效。我只想问,除了使用索引之外,是否还有其他方法可以使用此按钮?请注意,该按钮没有名称,所以我不能使用buttons()["name'"].tap()

+0

为什么你不能只给它一个名称或编程索引? – 2012-01-10 21:52:37

+0

@JackLawrence你能举例说明如何做到这一点吗?谢谢。 – user1140194 2012-01-11 01:49:09

回答

0

从技术上讲,这将是最好的方式去做你想做的事情,所以我会留在这里为其他开发人员看到这个问题。在你的情况下,由于你的技术经验有限,我建议你要求你的开发人员给按钮分配ID或名称。为按钮和其他UI元素提供良好的名称意味着您的应用程序也适用于视力受损的用户,因为配音会将他们提供给您的按钮的名称读取给他们。以下代码块将以编程方式将标签和可访问性提示分配给符合UIAccessibility的动态创建的对象。

从苹果公司的文件(在这种情况下,他们正在做的一个观点,但你可以做这样一个按钮,任何物体上):

- (id)init 
{ 
    _view = [[[MyCustomView alloc] initWithFrame:CGRectZero] autorelease]; 
    [_view setIsAccessibilityElement:YES]; 

    [_view setAccessibilityTraits:UIAccessibilityTraitButton]; 
    [_view setAccessibilityLabel:NSLocalizedString(@"view.label", nil)]; 
    [_view setAccessibilityHint:NSLocalizedString(@"view.hint", nil)]; 
} 

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html#//apple_ref/doc/uid/TP40008785-CH102-SW5

的Javascript“黑客”(不是很干净,但它的工作原理...):

var window = UIATarget.localTarget(); 
window.tap({x:yourXCoordinateHere , y:yourYCoordinateHere}); 
+0

谢谢你的回答,但我并不擅长编程,我是一个喜欢尝试自动化的测试人员,所以你的回答对我来说并不清楚。我只想知道是否有一种方法可以点击按钮(无ID /名称)而不是使用索引。再次感谢。 – user1140194 2012-01-11 08:35:38

+1

从你的答案我假设你的意思是你宁愿留在一些JavaScript的一边,对吗?我会相应地更新我的答案。 – 2012-01-12 03:10:41