标签: ui-automation

确定应用程序是否被阻止/忙碌?

我正在尝试使用C#/ .NET 4.0自动化外部应用程序的GUI

自动化的应用程序(AUT)是一个VB6应用程序.

在执行操作或单击按钮时,AUT有时会花费大量时间等待DB响应.当应用程序正在等待数据库结果时,应用程序本身处于空闲状态(不会注册很多CPU使用率),但它被阻止(您无法单击或与之交互).

- 到目前为止,我已经尝试将鼠标指针(沙漏)作为指示器,但有时应用程序被阻止但光标正常.所以这不可靠.

- 我已经尝试查看TotalProcessorTime的AUT的主要过程(这可以测量应用程序是IDLE还是BUSY),但就像我说的那样,有时应用程序是IDLE,并且仍然被阻止.

所以我想在stackOverflow人群的体验中加入,看看是否有人已经知道如何处理,和/或如果你对如何实现这一点有任何想法.

谢谢

编辑:

我一直在玩,只是发现了一些东西.

当AUT被阻止时,它不响应键盘或鼠标输入.但是,如果我将WM_LBUTTONCLICK消息发送到窗口,我可以确认消息正在处理(并且UI更改).

所以我猜他们在进行数据库调用时故意阻止应用程序.

.net c# ui-automation

8
推荐指数
1
解决办法
6452
查看次数

为什么WPF中需要AutomationProperties

根据我的理解,AutomationProperties可用于识别UI自动化客户端的控件名称.

我想了解需要创建单独的自动化属性集,而不是使用x:Name用于相同的目的.

.net wpf ui-automation

8
推荐指数
1
解决办法
3961
查看次数

无法从命令行运行UIAutomationTest

我有一个iOS应用程序,我想把它放在持续集成中.我用来做的策略是尝试从命令行运行测试.

我正在尝试使用以下脚本:

TRACETEMPLATE="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate"
instruments   -t $TRACETEMPLATE build/Release-iphonesimulator/MyApp.app -e UIACSCRIPT "UnitTests/SomeTest.js"
Run Code Online (Sandbox Code Playgroud)

SomeTest.js是一个简单的javascript文件,我可以在Xcode中的Instrumentation中运行它可以工作.我用以下方法构建应用程序

xcodebuild -alltargets -sdk iphonesimulator5.1
Run Code Online (Sandbox Code Playgroud)

这会生成MyApp.app.我可以在模拟器中从Xcode运行应用程序就好了,但是,当我尝试通过仪器运行时,我得到一个框,说有一个未知错误,并在命令行中打印:

2012-05-15 15:32:59.928 instruments[17548:1d03] Recording cancelled : At least one target failed to launch; aborting run
Instruments Trace Error : Failed to start trace.
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我任何关于可能发生的事情的帮助/建议,我该如何解决这个问题?

此外,它总是打开iPad模拟器?我能说它打开我想要的任何模拟器吗?

continuous-integration ui-automation ios

8
推荐指数
2
解决办法
5167
查看次数

在iOS中模拟方向更改以进行测试

我想测试我的应用程序处理方向更改(纵向/横向)的能力.我目前正在使用KIF,据我所知,它无法做到这一点.有没有办法以编程方式为iOS模拟器模拟旋转事件?

我不在乎它是否是一些未记录的私有API或黑客,因为这只会在测试期间运行,并且不会成为生产版本的一部分.

testing ui-automation ios kif-framework ios-ui-automation

8
推荐指数
1
解决办法
3283
查看次数

如何用Android uiautomator填写密码EditText?

uiautomator可以选择密码EditText吗?通过他们的android:hint属性查找其他EditText视图没有问题,但是uiautomatorviewer将所有密码字段显示为NAF.我尝试设置密码字段内容描述,但也不起作用.

如果不可能,如何设置测试人员手动输入密码的超时?

android ui-automation android-testing android-uiautomator

8
推荐指数
1
解决办法
7819
查看次数

选择iOS测试框架

我们想在我们的iOS应用程序中集成测试套件.总而言之,这个应用程序正在使用Web服务,在设备上保存文件并具有一些复杂的导航部件.要求: - 使用Jenkins运行测试套件 - 能够在一组设备和iOS版本上启动测试套件 - 我们并不明确需要非开发人员可读的东西,如Calabash建议

我们正在考虑进行一些工作流测试(从一个屏幕到另一个屏幕的交互)和单元测试.我们google了一下,但文章通常至少2年,这就像移动世界的旧石器时代.但是,它仍然提供了一些不错的第一输入.

对于单元测试,我们考虑的是:

  • GHUnit
  • XCTest
  • 猕猴桃

对于工作流测试,我们考虑的是:

  • 夏南瓜

关于所有提到的要求,是否有人看到任何建议选择一个框架或另一个(或另一个命题)?

感谢您的任何反馈.

ps:顺便说一下,我们在这个主题上发现的一些有趣的文章可以提供帮助:http : //blog.lesspainful.com/2012/03/07/Calabash-iOS/ http://iosunittesting.com/faq/

unit-testing ui-automation ios jenkins xctest

8
推荐指数
1
解决办法
7723
查看次数

如何使用TestStack.White Framework从键盘发送ENTER

我正在编写ac#代码来测试我的应用程序中的UI.我想从键盘发送ENTER.我已经检查过了TestStack.White.WindowsAPI.KeyboardInput.SpecialKeys.它不包含任何方法发送ENTER.

谢谢.

white-framework ui-automation

8
推荐指数
1
解决办法
4238
查看次数

UIA无法在网络浏览器中的文本选择和文档范围之间获得同意点

主要问题:在将所选文本的文本范围与当前站点上的文档范围(在IE中显示)进行比较时,无法使CompareEndpoints提供除"1"以外的任何值.

//Initialize range variables
IUIAutomationTextRange* documentRange = NULL;
IUIAutomationTextRange* selectionRange = NULL;
IUIAutomationTextRangeArray* selectionRangeArray = NULL;

//Get entire text document range
m_pTextPattern->get_DocumentRange(&documentRange);

//Get selection range
m_pTextPattern->GetSelection(&selectionRangeArray);
selectionRangeArray->GetElement(0, &selectionRange);
Run Code Online (Sandbox Code Playgroud)

范围有效,所选文本位于文档范围内.当我们尝试获取移动/字符的数量时,所选文本是从文档/ site-start的开头,那么我们只得到返回值1.

selectionRange->CompareEndpoints(
   TextPatternRangeEndpoint::TextPatternRangeEndpoint_Start, 
   documentRange, 
   TextPatternRangeEndpoint::TextPatternRangeEndpoint_Start,
   &rv);
Run Code Online (Sandbox Code Playgroud)

防爆.该网站:http: //www.cplusplus.com/reference/string/string/

我们从名为"string - C++ Reference"的节点中检索textpattern.然后我们得到整个文档"documentRange"的文档范围,并用鼠标选择一些文本并将该范围保存到selectionRange ex."代表的对象"(从站点选择文本...在std :: string下的第3行).

我们在记事本窗口中尝试了相同的操作,其中,compareendpoints返回了点文本范围之间的有效/正确距离.

例:

if (SUCCEEDED(hr))
    {
        IUIAutomationTextRange* documentRange = NULL;
        IUIAutomationTextRangeArray* selectionRangeArray = NULL;
        IUIAutomationTextRange* selectionRange = NULL;
        hr = E_FAIL;

        hr = m_pTextPattern->get_DocumentRange(&documentRange);
        if (SUCCEEDED(hr) && documentRange != NULL)
        {
            hr = m_pTextPattern->GetSelection(&selectionRangeArray);
            if …
Run Code Online (Sandbox Code Playgroud)

c++ windows internet-explorer ui-automation

8
推荐指数
1
解决办法
155
查看次数

Appium:如何从Android For Work工作资料中启动应用程序

我需要启动一个具有不同工作档案的应用程序(Android For Work).如果在个人资料中安装应用程序,那么我可以从同一设备上的个人资料中启动应用程序.

但是,当我仅在工作资料中安装应用程序时,我无法通过adb命令启动应用程序.

据我了解,谷歌为个人和工作档案保留了两个不同的容器.我认为工作资料具有不同的空间,而adb无法访问该应用和工作资料工作区.

我需要通过appium启动应用程序

如果有人对上述问题有答案,请回答.提前致谢 !

automation android ui-automation appium

8
推荐指数
1
解决办法
1056
查看次数

在XCUITest中强制触摸/ 3D触摸

我正在尝试为iOS应用程序添加强制触摸自动化.我查看了Apple文档中的相同问题,但找不到任何有用的东西.我们可以通过辅助触摸进行力量触摸,但我正在寻找像tap()动作一样简单的东西.我们可以使用forceTouch吗?

任何帮助将不胜感激.谢谢!

ui-automation ios swift force-touch xcuitest

8
推荐指数
1
解决办法
795
查看次数