Appium& Webdriver(webdriverjs) - 无法执行javascript代码

时间:2014-10-01 07:35:20

标签: javascript selenium selenium-webdriver webdriver appium

我正在尝试使用WD执行javascript Appium测试。我的代码应该是这样的:

"use strict";

var wd = require("wd");
var chai = require("chai");
var chaiAsPromised = require("chai-as-promised");
var jQuery = require("jQuery");

chai.use(chaiAsPromised);
chai.should();
chaiAsPromised.transferPromiseness = wd.transferPromiseness;
var desired = {
    "appium-version": "1.0",
    platformName: "iOS",
    platformVersion: "7.1",
    deviceName: "iPhone Retina (3.5-inch)",
    app: "/Users/{myuser}/Library/Developer/Xcode/DerivedData/{MyApp}/Build/Products/Debug-iphonesimulator/MyApp.app",
};

var browser = wd.promiseChainRemote("0.0.0.0", 4723);


browser.init(desired).then(function() {

    var getIframe = function(){
        //var r = jQuery('#myIframe');
        return {'response':"1"};//only for testing that this method works...
    };

    return browser

        .elementByName("Show Webview").click()
        .sleep(10000)
        .contexts().then(function (contexts) { // get list of available views. Returns array: ["NATIVE_APP","WEBVIEW_1"]
            return browser.context(contexts[1]); // choose the webview context
        })
        .execute(getIframe).then(function(res){
            console.log(res);
        })
        .sleep(10000)
        .fin(function() {
            //return browser.quit();
        });
}, function(e){console.log(e);}).done(); 

我正在使用node mytest.js运行此代码。

问题是我无法执行js代码。在这种情况下,我收到以下错误:

Error: [execute()] Not JSON response

我做错了什么?

评论:

  1. 我最终在这里尝试做的是使用iFrame.contentDocument

  2. 访问和操作我的代码(在同一个域中)中的iFrame
  3. 我使用'执行这样的检查来自this post

  4. TNX, 参见Yaniv

    更新

    我设法使用" safeExecute"执行javascript。方法,而不是"执行"。 我现在的问题是我无法访问" window"对象,所以我无法运行" jQuery"或" window.document.getElementById" ...

0 个答案:

没有答案