如何自动化团队备份下载

时间:2015-04-19 01:56:04

标签: javascript selenium selenium-webdriver phantomjs casperjs

我尝试自动下载由Teamwork创建的备份文件。它的工作方式是您登录,转到一个页面,该页面使用src =" https://tw-backup.teamwork.com/ext.cfm?backupaction = downloadLatestMySQLBackup"来加载动态生成的iframe。 / p>

我已尝试从iframe获取实际链接,但我还没有得到这个工作。但是,如果我在浏览器中输入,我使用的截断链接似乎可以正常工作。所以我只是想直接打开它。

不幸的是,它似乎只是挂起。

修改

phantomjs --version = 1.9.8;

出现此错误:

[debug] [phantom] url changed to "https://tw-backup.teamwork.com/ext.cfm?backupa
ction=downloadLatestMySQLBackup"
[debug] [phantom] Successfully injected Casper client-side utilities
[info] [phantom] Done 8 steps in 3427ms
finished
Unsafe JavaScript attempt to access frame with URL about:blank from frame with U
RL file:///c:/Users/Brad/AppData/Roaming/npm/node_modules/casperjs/bin/bootstrap
.js. Domains, protocols and ports must match.

我试图访问不同的子域而不是从我开始的地方出现的问题是什么?

如果您对此问题感兴趣,可以免费试用团队合作。顺便说一句,我们正在善于将其用于项目管理。

var casper = require('casper').create();

casper.start('https://myco.teamwork.com/', function () {

    console.log("start");

    this.waitForSelector("input[name='userLogin']",
        function success() {
            this.sendKeys("input[name='userLogin']", "me@myco.org");
        },
        function fail() {
            test.assertExists("input[name='userLogin']");
        });
    this.waitForSelector("input[name='password']",
        function success() {
            this.sendKeys("input[name='password']", "somePassword");
            console.log("login successful");
        },
        function fail() {
            test.assertExists("input[name='password']");
            console.log("login failed");
        });

    this.thenOpen('https://tw-backup.teamwork.com/ext.cfm?backupaction=downloadLatestMySQLBackup');   

});

1 个答案:

答案 0 :(得分:0)

我最终通过迁移到Selenium并使用Chrome驱动程序来完成此操作; Firefox驱动程序将无法运行,因为它会弹出一个保存对话框。

不幸的是,我没有把这项工作变得无头。我希望HtmlUnitDriver可以工作。它仍然可能,但对于我的目的,打开浏览器实际上是可以的。

请注意,您需要安装Chrome webdriver。在MAC上,您只需将其放入/ usr / bin即可。在Windows上,创建一个包含.jar和chromedriver.ext的文件夹。然后执行:

x <- setNames(doWork(), letters[1:3])

源代码:

C:\Program Files\teamworkbackup>java -Dwebdriver.chrome.driver=:"C:\Program files\teamworkdbackup\chromedriver.exe" -jar teamworkdbackup.jar