webdrivercss icon indicating copy to clipboard operation
webdrivercss copied to clipboard

Enable exclude parts made safaridriver return error

Open deadmanhead1602 opened this issue 10 years ago • 0 comments

I run following mocha test and result error. That only happens in safari.

    var testName = "search-fail",
        eleName = "body";

    browser
    .url('http://webdriver.io/')
    .pause(4000)
    .webdrivercss( 'safari-error', [
        {
            name: eleName,
            elem: 'section.content',
            exclude: '.teaser'
        },
    ], function(err, res) {

        assert.ifError(err);
        var resultObj = res[eleName];
        for(var i=0,len=resultObj.length; i<len; i++){
            assert.ok(resultObj[i].isWithinMisMatchTolerance, resultObj[i].message);
        }
        done();
    });

============== Error below ====================== Uncaught RuntimeError (UnknownError:13) An unknown server-side error occurred while processing the command. Problem: undefined is not a function (evaluating 'elements.forEach') (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 5 milliseconds Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50' System info: host: 'm-mac.local', ip: 'xxx.xxx.xxx.xxx', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.4', java.version: '1.7.0_80-ea' Session ID: null Driver info: org.openqa.selenium.safari.SafariDriver Capabilities [{platform=MAC, cssSelectorsEnabled=true, javascriptEnabled=true, secureSsl=true, browserName=safari, takesScreenshot=true, version=8.0.7}]

 Callstack:
 -> execute("return (function (fn, sArr, args) {  var cb = arguments[arguments.length - 1],  i = 0, sArgs = [],  use, value, xp, cs, tn,  res, j, arg;  while ((use = sArr[i++]) && (value = sArr[i++])) {  arg = [];  xp = cs = tn = [Function];  switch (use) {  case \"partial link text\": xp = '//a[contains(text(),\"'+value+'\")]'; break;  case \"link text\": xp = '//a[text()=\"'+value+'\"]'; break;  case \"xpath\": xp = value; break;  case \"id\": cs = '[id=\"'+value+'\"]'; break;  case \"name\": cs = '[name=\"'+value+'\"]'; break;  case \"tag name\": tn = value; break;  case \"css selector\": cs = value; break;  default: throw new Error(\"Could not evaluate selector: Invalid strategy \" + use);  }   if (xp) {  res = document.evaluate(xp, document, null, 0, null);  while (value = res.iterateNext()) {  arg.push(value);  }  } else if (tn || cs) {  res = tn ? document.getElementsByTagName(tn) : document.querySelectorAll(cs);  j = 0;  while (value = res[j++]) {  arg.push(value);  }  }  sArgs.push(arg);  }   var parameter = args && sArgs.concat(args) || sArgs;  if(parameter.length === 0 || (parameter.length === 1 && parameter[0].length === 0)) {  if(typeof cb === 'function') {  return cb('NoSuchElement') && new Error('NoSuchElement');  }  return new Error('NoSuchElement');  }   parameter.push(arguments[arguments.length - 1]);   return fn.apply(window, parameter);\n})(function () {   /**   * excludeElements are elements queried by specific selenium strategy   */  var excludeElements = Array.prototype.slice.call(arguments),  excludeRect = [];   excludeElements.forEach(function(elements) {   if(!elements) {  return;  }   elements.forEach(function(elem) {  var elemRect = elem.getBoundingClientRect();  excludeRect.push({  x0: elemRect.left,  y0: elemRect.top,  x1: elemRect.left + elemRect.width,  y1: elemRect.top + elemRect.height  });  });  });   return excludeRect;   },[\"css selector\",\".teaser\"],[], arguments[arguments.length - 1]);")
 -> selectorExecute([],[Function])
 -> webdrivercss("safari-error",[{"name":"body","elem":"section.content","exclude":".teaser"}])

deadmanhead1602 avatar Jul 27 '15 06:07 deadmanhead1602