我有一个控制台程序,其中包含不同的组件,如下所示:
void start() {
while(true){
DoSomething();
Thread.Sleep(1000*5);
}
}
Run Code Online (Sandbox Code Playgroud)
我的主要入口点看起来像[伪代码]
Thread.Start(Componenet1.Start);
Thread.Start(Componenet2.Start);
while(true){
Console.Writeline("running");
Thread.Sleep(1000*5);
}
Run Code Online (Sandbox Code Playgroud)
在任何地方都没有Console.Reads.我的问题是SOMETIMES应用程序将运行良好,但然后停止,如果我按下窗口上的任何键它将再次开始工作.这种情况很少发生,但我在100+ VM上部署了这个程序,在自动化环境中全天候运行.
另外在电脑上我有一些AHK脚本和其他操纵鼠标的东西,但不确定它是否与它有任何关系.
另请注意,有时CPU可以在机器上以100%的速度运行,因此可能是线程优先级问题?
SOLUTION:您需要禁用快速编辑模式.这是使用C#代码执行此操作:
// http://msdn.microsoft.com/en-us/library/ms686033(VS.85).aspx
[DllImport("kernel32.dll")]
public static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);
private const uint ENABLE_EXTENDED_FLAGS = 0x0080;
static void Main(string[] args)
{
IntPtr handle = Process.GetCurrentProcess().MainWindowHandle;
SetConsoleMode(handle, ENABLE_EXTENDED_FLAGS);
Run Code Online (Sandbox Code Playgroud) 我是一个javascript/java开发人员,我一直在试图弄清楚selenium webdriver自动化框架如何从文件系统上传文件.无法通过javascript设置文件输入,因为它是安全违规.然而,不知何故,webdriver能够使用以下命令执行此操作:
driver.setFileDetector(new LocalFileDetector());
WebElement upload = driver.findElement(By.id("myfile"));
upload.sendKeys("/Users/sso/the/local/path/to/darkbulb.jpg");
driver.findElement(By.id("submit")).click();
Run Code Online (Sandbox Code Playgroud)
所以他们通过发送密钥来设置价值?我不明白.我查看了此处的源代码:http: //code.google.com/p/selenium/source/checkout 我仍然无法找到他们这样做的地方.
编辑:我的问题不是如何用selenium做这个,但是硒开发人员是如何做到这一点的呢?他们是如何解决javascript中的安全限制的?他们如何上传文件?
selenium automation webdriver browser-automation selenium-chromedriver
我的任务是将大量的.doc文件转换为.pdf.我的主管要我这样做的唯一方法是通过MSWord 2010.我知道我应该能够通过python COM自动化实现自动化.唯一的问题是我不知道如何以及从哪里开始.我试着寻找一些教程,但却找不到(可能是我可能有,但我不知道我在找什么).
现在我正在阅读这个.不知道这会有多大用处.
我目前正在研究一种自动化向XCode项目添加新目标的方法.必须将一个目标添加到多个XCode项目中,并且不同项目中的每个目标需要添加相同的源文件,将相同的组存储在XCode项目中以及相同的构建设置.手动执行此操作可能需要一段时间,并且非常容易出现人为错误,我必须经常执行此任务.我已经编写了一个脚本来生成新的源文件,将它们复制到系统文件夹,用新信息编辑源文件等,但现在我需要自动化XCode部分.
这总结了我希望自动化实现的目标:
在/this/path/project.xcodeproj中打开一个XCode项目
复制现有目标并重命名
编辑新目标的构建设置
将一个组添加到"源和资源"部分,然后重命名它们
将源文件添加到组,并将文件添加到新目标
关闭XCode
理想情况下,我希望从我的Bourne Shell脚本运行,我知道您可以从那里启动自动机工作流程.我不确定实现这个目标的最佳方法是什么,任何想法?提前致谢 :-)
我正在运行以下命令:
get-childitem C:\temp\ -exclude *.svn-base,".svn" -recurse | foreach ($_) {remove-item $_.fullname}
Run Code Online (Sandbox Code Playgroud)
这经常提示我这样:
Confirm
The item at C:\temp\f\a\d has children and the Recurse parameter was not specified. If you continue,
all children will be removed with the item. Are you sure you want to continue?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Run Code Online (Sandbox Code Playgroud)
如何将其自动设置为"A"?
什么是良好的自动化Web UI测试工具?
我希望能够在.Net世界中使用它 - 但它不必用.net编写.
诸如记录模式,集成到构建过程\持续集成等功能将是很好的.
我要看看:
还有其他我应该看看的吗?
我想,作为一个长期的Python程序员,如果Python文化的一个核心方面很长一段时间让我失望:我们做什么而不是Makefiles?
我看过的大多数ruby项目(不仅仅是rails)使用Rake,在node.js开始流行之后不久,就有了蛋糕.在许多其他(编译和非编译)语言中有经典的Make文件.
但在Python中,似乎没有人需要这样的基础设施.我在GitHub上随机选择了Python项目,除了安装之外,他们没有自动化setup.py.
这背后的原因是什么?
什么都没有自动化?大多数程序员喜欢手动运行样式检查,测试等吗?
一些例子:
dependencies 设置virtualenv并安装依赖项check调用pep8和pylint命令行工具.test任务依赖于dependencies允许的virtualenv,启动硒服务器的集成测试,并呼吁nosetestcoffeescript任务编译所有coffeescripts到minified javascriptrunserver任务依赖于dependencies和coffeescriptdeploy任务依赖于check与test和部署项目.docs任务使用适当的参数调用sphinx他们中的一些只是一个或两个人,但恕我直言,他们加起来.由于Makefile,我不必记住它们.
澄清一下:我不是在寻找Rake的Python等价物.摊铺机我很高兴.我在找原因.
在阅读了Google关于使Ajax生成的内容可抓取的政策以及许多开发人员的博客文章和Stackoverflow问答主题之后,我得出的结论是,没有办法建立只有JavaScript/Ajax生成的网站HTML可抓取.我目前正在工作的网站没有获得相当数量的内容索引.我们的非索引内容的所有表示层都是通过从基于Ajax的Web服务调用返回的JSON生成HTML而构建的,我们相信Google并没有因此而对内容编制索引.那是对的吗?
唯一的解决方案似乎是拥有搜索引擎(特别是谷歌)网站的"后备"版本,其中所有HTML和内容都将按照传统方式在服务器端生成.对于启用了JavaScript的客户端,似乎我们可以使用与现在基本相同的方法:使用JavaScript从异步加载的JSON生成HTML.
回顾一下,我的理解是,如上所述,当前在创建可抓取的Ajax生成的网站时应用DRY原则的最佳实践是使用可以在客户端和服务器端使用相同模板的模板引擎.对于启用了JavaScript的客户端,客户端模板引擎(例如mustache.js)会将从服务器发送的JSON数据转换为HTML,如其模板文件的副本所定义.对于禁用了JavaScript的搜索爬虫和客户端,同一模板引擎(例如mustache.java)的服务器端实现将类似地对其相同的模板文件的副本进行操作以输出HTML.
如果该解决方案是正确的,那么这与4或5年前由前端重型站点使用的方法有何不同,其中站点基本上必须维护两个模板代码副本,一个副本用于启用JavaScript的用户(几乎每个人)和没有启用JavaScript的搜索引擎和浏览器的另一个副本(例如在FreeMarker或Velocity中)(几乎没有人)?似乎应该有更好的方法.
这是否意味着需要维护两个模板模型层,一个在客户端,另一个在服务器端?将这些客户端模板与Backbone.js,Ember.js或YUI App Library等前端MVC(MV/MVVC)框架相结合是多么可取?这些解决方案如何影响维护成本?如果不将更多框架(一个新的模板引擎和一个前端MVC框架)引入开发团队的技术堆栈,尝试这样做会更好吗?有没有办法减少冗余?
如果该解决方案不正确,那么我们是否缺少某些东西,并且可以通过我们的JavaScript做得更好,以保持我们现有的异步HTML-from-JSON结构并将其编入索引,因此我们不需要引入新的东西到架构堆栈?当业务需求发生变化时,我们确实不必更新表示层的两个版本.
假设我想替换一堆文件中的版本号,其中许多文件存在于子目录中.我将通过gulp-replace管道文件来运行regex-replace函数; 但我最终会想要覆盖所有原始文件.
任务可能如下所示:
gulp.src([
'./bower.json',
'./package.json',
'./docs/content/data.yml',
/* ...and so on... */
])
.pipe(replace(/* ...replacement... */))
.pipe(gulp.dest(/* I DONT KNOW */);
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能结束它,以便每个src文件在原始位置覆盖自己?有什么我可以传递到gulp.dest()这将做到这一点?
我正在使用cloudformation来创建一个包含自动调整的ec2实例和S3存储桶的堆栈.对于S3存储桶,我将DeletionPolicy设置为Retain,工作正常,直到我想再次重新运行我的cloudformation脚本.由于在之前的运行中,脚本创建了S3存储桶,因此在后续运行中失败,说我的S3存储桶已经存在.当然也没有创建其他资源.我的问题是如何检查我的S3存储桶是否首先存在于cloudformation脚本中,如果存在,则跳过创建该资源.我查看了AWS中的条件,但它似乎都是基于参数的,我还没有找到一个从现有资源检查的函数.
automation amazon-web-services conditional-statements aws-cloudformation