当前位置: 首页 > 面试题库 >

量角器找不到Angular

西门洛城
2023-03-14
问题内容

我似乎无法使Protractor意识到Angular已加载并正在运行。当Chrome打开时,我的应用程序已完全加载到浏览器中,因此我知道Angular已加载并正常运行。

配置文件:

exports.config = {
seleniumServerJar: 'C:/Dev/PrismWeb/selenium/selenium-server-standalone-2.35.0.jar',

seleniumPort: null,

chromeDriver: 'C:/Dev/PrismWeb/selenium/chromedriver.exe',

seleniumArgs: [],

seleniumAddress: null,

allScriptsTimeout: 110000,

specs: ['c:/dev/prismweb/test/e2e/*.js'],

capabilities: {'browserName': 'chrome'},

baseUrl: 'http://localhost:8080',

rootElement: 'html',

jasmineNodeOpts: {
    onComplete: null,
    isVerbose: true,
    showColors: true,
    includeStackTrace: true,
    defaultTimeoutInterval: 30000
}
};

我只有一个要运行的测试,但由于量角器找不到Angular而失败了。

考试:

describe('homepage loads: ', function(){
var ptor;

    ptor = protractor.getInstance();

    beforeEach(function(){
        ptor.get('/');
    });

it('should load the prism homepage: ', function(){
    var usernameField = ptor.findElement(protractor.By.id("username"));
    //expect(usernameField).toBeDefined();
});
});

这是我得到的错误:

UnknownError:JavaScript错误:未定义角度(会话信息:chrome =
30.0.1599.69)(驱动程序信息:chromedriver = 2.2,platform = Windows NT 6.1 SP1
x86_64)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:19毫秒内部版本信息:版本:‘2.35.0’,版本:’c916b9d’,时间:‘2013-08-12
15:42:01’系统信息:os.name:’Windows 7’,os.arch
:’amd64’,os.version:‘6.1’,java.version:‘1.7.0_21’会话ID:1ef7dcd7c5fc9c4e9e1dede050002adf驱动程序信息:org.openqa.selenium.chrome.ChromeDriver功能[{platform
= XP,acceptSslCerts = true,javascriptEnabled = true,浏览器名称= chrome,chrome =
{chromedriverVersion = 2.2},可旋转= false,locationContextEnabled = true,版本=
30.0.1599.69,cssSelectorsEnabled = true,databaseEnabled = true,handlesAlerts
= true,browserConnectionEnabled = false,webStorageEnabled =
true,nativeEvents = true,applicationCacheEnabled = false,takesScreenshot =
true}]

我尝试将ng-app属性移到body标签(并相应地更改配置),但是遇到了同样的错误。我们在html标签上也有一个ng-
controller属性,我尝试将其移到主体上,而在ngf标签上保留了ng-app属性,但结果是一样的。是否有人对此失败有任何见解?

编辑:可能需要帮助的一些注意事项。我已经更新了上面的测试,以包括手动引导工作。Angular和所有模块的脚本标记位于页面底部,紧接在BODY标记之前。HTML标记仍然具有ng-
app =“ myApp”属性以及ng-controller =“
baseController”属性。如果我尝试在测试中手动引导应用程序,则会得到以下信息:

ReferenceError: angular is not defined

让我担心的另一件事是,我们使用的模块之一绝对需要将“ $”映射到jQuery,因此我们将其映射为:

<script type="text/javascript">
    var $jq=jQuery.noConflict();
    var $=jQuery.noConflict();
</script>

包含ng-app的位置:

<!DOCTYPE html>
<html ng-app="prismApp" ng-controller="baseController">
<head>

问题答案:

我不太确定是否要在a beforeEach()内进行操作,it()但除此之外,您是否尝试过等待一会儿?显然,我的意思是a
ptor.waitForAngular()或a ptor.wait()

尝试一下ptor.sleep(10000)之后ptor.get(),看看是否是定时的事情。

编辑:还看一下量角器api及其wait()工作原理:

ptor.wait(function () {
  // Return a condition. Code will continue to run once it is true      
}, 10000); // Only do this for 10 seconds

编辑:尝试ptor.driver.get('my-page');代替ptor.get('my-page');

编辑:量角器现在公开browser为全局,因此您可以使用browser.get('index.html#/foo')browser.wait()等。



 类似资料:
  • 问题内容: 我按照本教程安装了量角器,当我使用webdriver-manager更新时,它说: 您在我尝试进行量角器测试时说: 我检查了 local.dp.js ,发现它试图从 .. \ node_modules \ protractor \ selenium \ chromedriver加载chromedriver, 但是只有一个空的zip文件 chromedriver_2.9 。 因此,我手动

  • 问题内容: 我正尝试按照官方的《入门指南》启动并运行量角器。 命令 似乎运行顺利: 但是,跑步 如建议导致错误: 并且旧窗口抛出异常: 知道有什么问题吗? 问题答案: 删除该未完成的zip文件(chromedriver_x.xx.zip),您需要它再次执行更新。该文件夹将如下所示: chromedriver chromedriver_2.10.zip selenium-server-standal

  • 当我用量角器运行cucumber时,我收到错误信息,任何人都可以帮助我提出原因: -----------------config.js--------------- ----------login.feature------------

  • 有人帮忙吗? 我清除了节点模块并:

  • 问题内容: 以下是我的标记 我正在尝试使用该类的元素。 我用来访问转发器的代码是: 有没有一种方法可以通过在jQuery中执行以下操作来获取元素: 有没有办法用量角器做类似的事情? 问题答案: 这应该适合您的示例: