问候所有,
我正在开发一个C#程序,它需要能够在Windows 7 Explorer的新ItemsView控件中获取热门项目的索引.幸运的是,Microsoft通过查询控件的自定义属性,提供了一种通过UI自动化实现此目的的方法.
不幸的是,System.Windows.Automation命名空间莫名其妙地似乎没有提供查询自定义属性的方法!这使我不得不完全抛弃C#Automation命名空间并仅使用非托管COM版本.一种方法是将所有自动化代码放在单独的C++/CLI模块中,并从我的C#应用程序中调用它.但是,如果可能的话,我想避免使用此选项,因为它会为我的项目添加更多文件,而且我不得不担心32/64位问题等等.
另一个选择是使用ComImport属性来声明相关接口并通过COM-interop完成所有操作.这就是我想做的.但是,相关的接口,如IUIAutomation和IUIAutomationElement,正在变得非常大.他们总共有数百种方法,参考吨和大量的接口(我假设我还必须声明),几乎所有这些都是我永远不会使用的.我不认为UI自动化接口也在任何类型库中声明,所以我不能使用TLBIMP.
有什么方法可以避免手动将bajillion方法签名转换为C#而只是声明我实际需要的十个左右的方法吗?我看到C#4.0添加了一个新的"动态"类型,可以缓解COM互操作; 那与我的问题有关吗?
谢谢
我正在尝试在工作中自动执行许多重复性任务,这个小问题让我感到难过.
我们正在使用一个应用程序来打印在线订单的标签,过程是这样的.
在忙碌的日子里,我们必须通过这个过程超过500个订单,因为这个任务因为步骤3而消耗了大量无用的时间.用户必须等待那5秒才能点击"打印"按钮.假设我们有500个订单,那是500次5秒,大概是40分钟.整个发送过程花费2个小时,因此有33%的时间因人们等待点击按钮而丢失.
我正在尝试找到一种自动执行步骤4的方法,以便用户在完成步骤2后可以停止与应用程序交互.
那么有没有办法使用C#从另一个应用程序中单击另一个表单中的按钮?弹出确认屏幕时必须触发事件.请注意,此确认屏幕不是默认的Windows打印对话框,而是应用程序的一部分,因此不会弄乱首选项.
有没有人有功能语言编写UI自动化的例子或经验?我正在学习F#以更好地理解功能概念,我很难弄清楚如何用函数式语言构建自动UI测试 - 似乎很容易使用我在Java中使用的相同页面/屏幕对象模式或C#,但由于缺乏经验,我很好奇,如果我错过了不同的方法.
目前我正在使用specflow,selenium,流畅的自动化和xunit的组合来测试我在Chrome网站的部署实例上的浏览器应用程序.这在开发人员计算机上运行良好,但是除了构建服务器代理很慢之外,构建服务器代理经常出现故障.
我已经遍布phantom.js 文档我很难理解我是否可以使用phantom.js来完全测试我的应用程序.
我的应用程序有很多javascript逻辑,我使用requirejs加载我的所有模块,我想知道我是否可以使用幻影的无头浏览器功能来测试它的所有功能.它会下载所有的javascript文件,然后允许我在dom上执行操作,比如启动包含表单的模式吗?很多UI都是用挖空模板构建的.
我已经完成了一些搜索,但没有任何确定性.有没有人对此有任何建议?此时我对跨浏览器测试并不感到困扰,我们已经获得了手动QA.这只是通过所有用户故事的ui自动化失败的快乐路径早期预警系统.
在所有这些结束时,我做了一些非常有用的更改
jQuery.activeacceptance-testing ui-automation jasmine phantomjs fluentautomation
在使用VBA自动化Adobe Illustrator CS3时,我发现将布尔变量赋值给布尔属性会导致始终分配False:
Dim New_Path As Illustrator.PathItem
Dim v As Boolean
' ...
v = True
New_Path.Filled = v ' ERROR: New_Path.Filled is False
v = False
New_Path.Filled = v ' New_Path.Filled remains False
Run Code Online (Sandbox Code Playgroud)
分配给常量可以正常工作:
Dim New_Path As Illustrator.PathItem
' ...
New_Path.Filled = True ' New_Path.Filled is True
New_Path.Filled = False ' New_Path.Filled is False
Run Code Online (Sandbox Code Playgroud)
验证关于各种AI布尔属性如PathItem.Stroked,Layer.Visible等
已验证Photoshop.ArtLayer.Visible.
已验证VB6.
所以,我觉得这种行为在Adobe Adobe Creative Suite产品中很常见.
这是一个错误还是一个功能?
我无法初始化AutomationElement。
AutomationElement element = AutomationElement.FromHandle(process.MainWindowHandle);
Run Code Online (Sandbox Code Playgroud)
它突出显示了AutomationElement,它表示的错误是http://i.stack.imgur.com/wNCvq.png
我正在使用Python的PyAutoGUI库来自动化GUI.在我完成当前窗口上的数据输入后,我自动化的应用程序将打开一个新窗口.一切都由python自动化(当前窗口中的数据输入和打开窗口所需的点击)来处理.
在当前窗口中执行单击时,新窗口需要一些时间才能打开(可能介于2 - 5秒之间).所以我可以在这里考虑两个选项:
time.sleep(5)(Con:3秒可能会浪费不必要的)locateOnScreen功能,可用于查明窗口是否实际出现在屏幕上.(但是,这是CPU密集型的,并且该功能本身是CPU密集型的,并且需要大约2秒才能返回)所以它看起来[1]对我来说是一个更好的选择.还有其他一些我可能错过的技术会比这两种方法更好吗?谢谢.
我正在尝试使用Python的Selenium软件包自动登录到GMail。但是,我无法完成任务并得到以下错误:
Traceback (most recent call last):
File "C:\Users\Surojit\Desktop\Python\automaticpasswordFiller.py", line 21, in <module>
passwordElem = browser.find_element_by_id('Passwd')
File "C:\Users\Surojit\AppData\Local\Programs\Python\Python35-32\lib\site- packages\selenium\webdriver\remote\webdriver.py", line 266, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "C:\Users\Surojit\AppData\Local\Programs\Python\Python35-32\lib\site- packages\selenium\webdriver\remote\webdriver.py", line 744, in find_element
{'using': by, 'value': value})['value']
File "C:\Users\Surojit\AppData\Local\Programs\Python\Python35-32\lib\site- packages\selenium\webdriver\remote\webdriver.py", line 233, in execute
self.error_handler.check_response(response)
File "C:\Users\Surojit\AppData\Local\Programs\Python\Python35-32\lib\site- packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"Passwd"}
Stacktrace:
at FirefoxDriver.prototype.findElementInternal_ (file:///C:/Users/Surojit/AppData/Local/Temp/tmpceecsm46/extensions/fxdriver@goo glecode.com/components/driver-component.js:10770)
at FirefoxDriver.prototype.findElement (file:///C:/Users/Surojit/AppData/Local/Temp/tmpceecsm46/extensions/fxdriver@goo glecode.com/components/driver-component.js:10779)
at DelayedCommand.prototype.executeInternal_/h (file:///C:/Users/Surojit/AppData/Local/Temp/tmpceecsm46/extensions/fxdriver@goo glecode.com/components/command-processor.js:12661)
at DelayedCommand.prototype.executeInternal_ (file:///C:/Users/Surojit/AppData/Local/Temp/tmpceecsm46/extensions/fxdriver@goo glecode.com/components/command-processor.js:12666)
at …Run Code Online (Sandbox Code Playgroud) 从历史上看,使用Appium无法自动化iOS应用商店应用(例如,由于所有应用商店应用上使用的分发证书,这意味着您无法通过Appium访问应用).
现在可以在2018年中期使用,如果有的话,是否有人知道如何设置它?
如果我想Form在Form标题中显示我项目中每个项目的大小,那么最佳方法是什么?
我不想在每个人手动放置一个事件处理程序Form.
我希望这个过程是自动的.
类似于重载Load()事件,在resize事件上添加处理程序.