当前位置: 首页 > 知识库问答 >
问题:

如何用量角器从一个无角度的页面导航回另一个有角度的页面

陶宜民
2023-03-14

到底应该怎么做才能重定向回一个有角度的页面?这是我的输入&来自html的按钮(无角页面)

<input class="value" type="password" 3dsinput="password" name="password">
<input type="submit" value="Submit" name="submit" alt="Submit" border="0">

位于todo-speck.js中,如下所示;

 element(by.css('.value')).sendKeys('12345');
 element(by.buttonText('Submit')).click();

使用browser.driver.ignoresynchronization=true;在上一个角度页上最后调用以关闭同步。请记住,这个小页面在将用户重定向到即将到来的有角度的页面之前与支付网关服务进行通信。我试图关闭同步,但没有缓解。

另外要注意的是:当我一分钟又一分钟地运行相同的脚本时,我似乎会得到两个不同的错误。我猜是和超时有关。一个是;

失败:在等待量角器与页面同步时无法分配错误的只读属性“stack”:“Window.Angular is undefined。这可能是因为这是一个非角度页面,或者是因为您的测试涉及客户端导航,这可能会干扰量角器的引导。有关详细信息,请参阅http://git.io/v4gxm”

另一个;

失败:javascript错误:等待结果时已卸载文档(会话信息:Chrome=51.0.2704.84)(驱动程序信息:ChromeDriver=2.21.371459(36D3D07F660FF2BC1BF28A75D1CDABED0983E7C4),平台=Windows NT 10.0x86_64)(警告:服务器未提供任何stacktrace信息)命令持续时间或超时:1.40秒生成信息:版本:“2.52.0”,修订版:“4C2593C”,时间:“2016-02-11 19:06:42”系统信息:主机:“xxxxxxx”,IP:“xxxxx”,OS.Name:“Windows 10',os.arch:”amd64“,os.version:”10.0“,java.version:”1.8.0_92“驱动程序信息:org.openqa.selenium.chrome.chromeDriver Capilition[{applicationcacheenabled=false,rotatable=false,mobileemulationenabled=false,chrome={chromeDriverVersion=2.21.371459(36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),userdatadir=c:\users\colin\appdata\local\temp\scoped_dir6892_17447},takesheapsnapshot=true,databasee.frome.chrome Enabled=false,HandlesAlerts=true,HastouchScreen=false,Version=51.0.2704.84,Platform=XP,BrowserConnectionEnabled=false,nativeEvents=true,AcceptsLCerts=true,LocationContextenabled=true,WebStorageEnabled=true,BrowserName=Chrome,TakessCreenshot=true,JavaScriptEnabled=true,CSSSelectorsEnabled=true}]会话ID:fde99ca463aacd06f923cae8895b06a5

你的帮助将会受到高度赞赏...

共有1个答案

吴谦
2023-03-14

解决了。我可能在重复同样的解决方案(由其他人建议),而我只是误解了其他如此相似的问题。

我不得不在无角度的页面上使用browser.driver.sleep(5000),以确保它正确地加载和放置,并且量角器不会很快地碾过它。

为了管理jasmine超时(这是一个偶尔出现的问题--让我觉得自己一直都是错误的),我在顶部的beforeech函数中显式地编写了timeout。看一看;

在这里看到的beforeEach(在config.js中设置defaulttimeoutinterval对我不起作用。)

  describe('angularjs homepage todo list', function() {

    beforeEach(function (done) {
       jasmine.DEFAULT_TIMEOUT_INTERVAL = 80000;
       setTimeout(function () {
           // console.log('inside timeout');
           done();
       }, 500);
    });

   it ('should be bla bla bla', function(){

Description-IT函数中的其他部分(有角度的>>无角度的>>有角度的)

    browser.ignoreSynchronization = true; // Turn sync off before submit (on angular page).
    this_page.clickBtn(); //Redirect to *NON-ANGULAR PAGE*


    //*NON-ANGULAR PAGE* loaded (payment gateway)
    browser.driver.sleep(5000);// to fully load non-angular page 

    element(by.css('.value')).sendKeys('12345');                     
    element(by.buttonText('Submit')).click(); 

再一次,如果有人对此有不同的看法,我会得到纠正。我上下沮丧了一个星期才弄明白这一点。-新的“量角器”;)

    var elm = element(by.id('drop-off'));
    browser.executeScript("arguments[0].click();", elm.getWebElement());
element(by.id('drop-off')).click(); 

由于某些原因,materialize在其设计中隐藏了复选框/单选按钮中的原始元素,使您可以在量角器/WebDriver不会检测到错误的情况下查看它。因此您需要非常清楚这一点,以帮助与后端进行对话。我发现的很小但很大的问题。当我想到这一点时,我的量角器测试就像婴儿的屁股一样平稳

还有一件事对我帮助很大,那就是关注webdriver错误(我以前不这么做)。它们比量角器更明确。

 类似资料:
  • 问题内容: 我有两个AWS账户-假设A和B. 在帐户B中,我定义了一个角色,该角色允许从帐户A中访问另一个角​​色。我们称其为角色B 在帐户A中,我定义了一个角色,该角色允许root用户承担角色。让我们称之为角色A 角色A附加了以下策略 作为帐户A的用户,我担任角色A。现在使用此临时凭据,我想承担角色B并访问帐户B拥有的资源。我有以下代码 该代码适用于我从客户端获得的一组角色,但不适用于我在我有权

  • 问题内容: 如何在Java中计算两个角度量度(以度为单位)的差,使结果在[0°,180°]范围内? 例如: 问题答案: /* * Shortest distance (angular) between two angles. * It will be in range [0, 180]. / public static int distance(int alpha, int beta) { int

  • 我有一个组件A,它触发一个对话框 此组件触发PicuploadComponent,我在此上传图像并接收带有一些数据响应

  • 问题内容: 我试图找出一种方法来保持我的变量与页面刷新/跨控制器。我的工作流程是 用户通过Facebook登录并获得访问令牌 用户访问令牌将与每个请求一起使用 我尝试了两种方法, 1-将令牌分配给 不工作 2-使用 但是问题是,如果刷新页面,该页面将变为空白。我是新手,无法找到刷新页面后保留数据的方法 任何帮助将非常感激 问题答案: 您可以使用。真的很容易使用。

  • 我试图遵循量角器官方网站上的量角器教程,但我甚至无法完成步骤0。 我在用量角器 之后,我一直在遵循教程的第0步。我有配置。js文件和test-spec.js文件如下: 配置js公司 测试规范js 当我运行protector

  • 我有一个组件订阅服务中的一个可观察对象。该方法反过来订阅另一个服务中的可观察对象。我想将一个数组从最后一个服务传递回第一个服务,然后第一个服务将该数组传递回组件。更具体地说,该组件调用其本地服务,然后调用一个数据服务,该数据服务通过http客户端访问我的数据库。http客户端正在工作,数据服务将数组返回给本地服务。本地服务接收数组,但我不知道如何将该数组作为可观察对象传递回组件。以下是简短的代码块