本文介绍了上传本地文件时,Selenium IDE 1.4.1抛出安全错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



 <!DOCTYPE html PUBLIC -  // W3C // DTD XHTML 1.0 Strict / / ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> 
< head profile =http://selenium-ide.openqa.org/profiles/test-case>
< meta http-equiv =Content-Typecontent =text / html; charset = UTF-8/>
< link rel =selenium.basehref =https:// localhost:8080 //>
< title>基本< / title>
< / head>
< body>
< table cellpadding =1cellspacing =1border =1>
< tr>
< td>打开< / td>
< td> /upload.html< / td>
< td>< / td>
< / tr>
< tr>
< td>类型< / td>
< td> foo< / td>
< td> C:\ Temp \harmony\tests\02.basic\config.xml< / td>
< / tr>
< tr>
< td> clickAndWait< / td>
< td> //输入[@值='上传']< / td>
< td>< / td>
< / tr>
< tr>
< td> clickAndWait< / td>
< td> link =回家< / td>
< td>< / td>
< / tr>
< tr>
< td>点击< / td>
< td> link =新订单< / td>
< td>< / td>
< / tr>
< / table>
< / body>
< / html>

我得到以下错误:

  [error]意外的异常:code  - > 1000,INDEX_SIZE_ERR  - > 1,DOMSTRING_SIZE_ERR  - > 2,HIERARCHY_REQUEST_ERR  - > 3,WRONG_DOCUMENT_ERR  - > 4,INVALID_CHARACTER_ERR  - > 5,NO_DATA_ALLOWED_ERR  - > 6,NO_MODIFICATION_ALLOWED_ERR  - > 7,NOT_FOUND_ERR  - > 8,NOT_SUPPORTED_ERR  - > 9,INUSE_ATTRIBUTE_ERR  - > 10,INVALID_STATE_ERR  - > 11,SYNTAX_ERR  - > 12,INVALID_MODIFICATION_ERR  - > 13,NAMESPACE_ERR  - > 14,INVALID_ACCESS_ERR  - > 15,VALIDATION_ERR  - > 16,TYPE_MISMATCH_ERR  - > 17,DATA_CLONE_ERR  - > 25,消息 - >安全错误,结果 - > 2152924136,名称 - > NS_ERROR_DOM_SECURITY_ERR,文件名 - > chrome://selenium-ide/content/selenium-core/scripts/atoms.js,lineNumber  - > 8910,columnNumber  - > 0,位置 - > JS frame :: chrome://selenium-ide/content/selenium-core/scripts/atoms.js ::< TOP_LEVEL> :: line 8910,inner  - > null,data  - > null 

这种情况发生在Firefox 8的升级之前,测试工作得很好。 Selenium IDE版本是1.4.1,这似乎是最后一个。



请帮助。








$编辑:错误的行是: a.value = d 。这是整个函数:

$ $ $ $ $ $ $ $ $ $ $ $ $ $ .fire(a,focus,{bubble:!1});
bot.events.fire(a,select);
var c = bot.dom.getAttribute(a,maxlength),d = b;
c!= null&& (c = parseInt(c),b.length> c&&(d = b.substr(0,c)));
if(bot.dom.isElement(a,goog.dom.TagName.BODY)){
if(a.ownerDocument&& a.ownerDocument.designMode&&& )$ {$ b $ a.innerHTML = d
}
} else {
a.value = d

try {
bot.events.fire(a,change)
} catch(e){
}
};


解决方案

这听起来像。

with this simple configuration:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="https://localhost:8080/" />
<title>basic</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<tr>
    <td>open</td>
    <td>/upload.html</td>
    <td></td>
</tr>
<tr>
    <td>type</td>
    <td>foo</td>
    <td>C:\Temp\harmony\tests\02.basic\config.xml</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>//input[@value='Upload']</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>link=go to home</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>link=New order</td>
    <td></td>
</tr>
</table>
</body>
</html>

I get the following error:

[error] Unexpected Exception: code -> 1000, INDEX_SIZE_ERR -> 1, DOMSTRING_SIZE_ERR -> 2, HIERARCHY_REQUEST_ERR -> 3, WRONG_DOCUMENT_ERR -> 4, INVALID_CHARACTER_ERR -> 5, NO_DATA_ALLOWED_ERR -> 6, NO_MODIFICATION_ALLOWED_ERR -> 7, NOT_FOUND_ERR -> 8, NOT_SUPPORTED_ERR -> 9, INUSE_ATTRIBUTE_ERR -> 10, INVALID_STATE_ERR -> 11, SYNTAX_ERR -> 12, INVALID_MODIFICATION_ERR -> 13, NAMESPACE_ERR -> 14, INVALID_ACCESS_ERR -> 15, VALIDATION_ERR -> 16, TYPE_MISMATCH_ERR -> 17, DATA_CLONE_ERR -> 25, message -> Security error, result -> 2152924136, name -> NS_ERROR_DOM_SECURITY_ERR, filename -> chrome://selenium-ide/content/selenium-core/scripts/atoms.js, lineNumber -> 8910, columnNumber -> 0, location -> JS frame :: chrome://selenium-ide/content/selenium-core/scripts/atoms.js :: <TOP_LEVEL> :: line 8910, inner -> null, data -> null

This happens after upgrating to Firefox 8. Before that the test worked just fine. The Selenium IDE version is 1.4.1 and this seems to be the last one.

Please, help.

Thank you.

Martin

EDIT: The line from the error is: a.value = d. Here is the whole function:

core.events.replaceText_ = function(a, b) {
  bot.events.fire(a, "focus", {bubble:!1});
  bot.events.fire(a, "select");
  var c = bot.dom.getAttribute(a, "maxlength"), d = b;
  c != null && (c = parseInt(c), b.length > c && (d = b.substr(0, c)));
  if(bot.dom.isElement(a, goog.dom.TagName.BODY)) {
    if(a.ownerDocument && a.ownerDocument.designMode && (new String(a.ownerDocument.designMode)).toLowerCase() == "on") {
      a.innerHTML = d
    }
  }else {
    a.value = d
  }
  try {
    bot.events.fire(a, "change")
  }catch(e) {
  }
};
解决方案

This sounds like Selenium bug #2826.

这篇关于上传本地文件时,Selenium IDE 1.4.1抛出安全错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 01:59