标签: browser-testing

Laravel Dusk 无法断言看到屏幕截图中可见的文本(使用 whenAvailable 进行模式)

我写了一个 Laravel Dusk 测试。我试图断言模式打开后某些文本是否可见。所以,我正在使用该whenAvailable方法。但当我可以看到屏幕截图中的文本时,它失败了。

$browser->press('@finish-setup-button')
        ->whenAvailable('#modal-payment-info', function ($modal) use($paymentInfo) {
            $modal->assertSee(html_entity_decode(__('account_setup.payment')))
                  ->type('name', $paymentInfo->name)
                  ->type('iban', $paymentInfo->iban)
                  ->type('bic', $paymentInfo->bic)
                  ->press('@subscribe-button');
        });
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

有1次失败:

1) Tests\Browser\RegistrationTest::testRegistration 在元素 [body #modal- payment-info] 中没有看到预期的文本 [Payment]。未能断言 false 为 true。

截屏:

在此输入图像描述

我究竟做错了什么?

browser-testing laravel laravel-dusk

4
推荐指数
1
解决办法
3782
查看次数

如何在多个浏览器中调试显示/ CSS问题?

说我需要为多个浏览器开发一个网站.主要的 - Firefox,Safari,IE,Opera,Chrome

你如何调试显示问题?在Firefox中有Firebug,这很棒.还有一个适用于其他浏览器的Firebug Lite,但它并不是全功能的 - 它不会实时刷新.例如,如果我怀疑jQuery正在减慢它(添加类等),我怎么知道?

css firebug browser-testing

3
推荐指数
1
解决办法
467
查看次数

检测浏览器类型

除了我的 ASP.NET 应用程序中的错误报告之外,我还检索浏览器信息。例如,我经常收到特定错误:

Type = Mozilla
Name = Mozilla
Version = 5.0
Major Version = 5
Minor Version = 0
Platform = Unknown
Is Beta = False
Is Crawler = False
Is AOL = False
Is Win16 = False
Is Win32 = False
Supports Frames = False
Supports Tables = False
Supports Cookies = False
Supports VBScript = False
Supports JavaScript = False
0.0
Supports Java Applets = False
Supports ActiveX Controls = False
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是firefox,但是我也得到firefox的特定错误,所以我不确定上面的信息到底是什么浏览器?

谢谢

asp.net firefox cross-browser browser-testing

2
推荐指数
1
解决办法
4327
查看次数

Casperjs:测试jquery自动完成

我无法与带有casperjs的jquery自动完成输入框进行交互.我尝试了很多不同的方法,但是当弹出选项列表时,我似乎无法选择自动完成选项.

我的代码如下:

casper.thenEvaluate(function() {
  $('#myInput').val('cars');  // fill in the text box
  $('#myInput').blur();  // should trigger the autocomplete ajax call
  $('.ui-autocomplete li.ui-menu-item:nth-of-type(1)').click(); // should click the first item in the list
});

// take a picture to make sure it worked
casper.then(function() {
  this.captureSelector('pics/test1.png', '#theForm');
});
Run Code Online (Sandbox Code Playgroud)

这根本不起作用,即使看起来应该如此.通过玩弄它,我发现触发向下箭头按键几次触发自动完成显示,所以这是一个更接近工作的版本.这适用于浏览器,但由于某种原因不适用于casper.thenEvaluate块.

$('#myInput').val('cars');  // fill in the text box
var e = jQuery.Event("keydown");
e.which = 40; // press down arrow a few times, not sure why this works
$("#myInput").trigger(e);
$("#myInput").trigger(e);
$('.ui-autocomplete li.ui-menu-item:nth-of-type(1)').click();
Run Code Online (Sandbox Code Playgroud)

jquery browser-automation browser-testing jquery-autocomplete casperjs

2
推荐指数
1
解决办法
2483
查看次数

Laravel Dusk 测试断言选择器的元素不存在

我正在使用 Laravel 框架开发 Web 应用程序。我正在我的应用程序上运行 Dus/浏览器单元测试。但是现在我在断言所选元素是否存在时遇到问题。

我有包含此代码片段的视图文件。

@if(auth()->user()->role == 1)
      <a dusk="button-create" href="/create">
          Create
      </a>
@endif
Run Code Online (Sandbox Code Playgroud)

我正在测试该按钮是否存在于 Dusk 单元测试中。

  $this->browse(function (Browser $browser) use ($admin) {
        $browser->loginAs($admin)->visit(url);
        $textContent = $browser->text("@button-create");
        $this->assertNotEmpty($textContent);
    });
Run Code Online (Sandbox Code Playgroud)

使用上面的代码测试按钮是否存在很好。但是当我测试按钮是否不存在时。

 $this->browse(function (Browser $browser) use ($student) {
            $browser->loginAs($student)->visit(url);
            $textContent = $browser->text("@button-create");
            $this->assertEmpty($textContent);
        });
Run Code Online (Sandbox Code Playgroud)

我收到此错误。

no such element: Unable to locate element: {"method":"css selector","selector":"body [dusk="button-create"]"}
Run Code Online (Sandbox Code Playgroud)

我可以想到的一个解决方案是用另一个元素包装 html 元素并在其上设置选择器。像这样的东西。

<span dusk="button-create">
@if(auth()->user()->role == 1)
          <a href="/create">
              Create
          </a>
    @endif
</span>
Run Code Online (Sandbox Code Playgroud)

但我不想用另一个 html 标签包装它。是否可以不包装另一个标签?如何?

browser-testing laravel laravel-dusk

2
推荐指数
1
解决办法
1431
查看次数

Watir:当网页元素存在时总是等待

用户操作后,Web应用程序始终使用此div.我的测试脚本有这一行.逐字逐句.

@browser.div(:id => 'loading-indicator').wait_while_present
Run Code Online (Sandbox Code Playgroud)

在任何地方明确地包括这条线是可以的,但是丑陋和重复.

使用wait_until_present下一元素(" foo负载指示后"),有时会工作.然而,在某些情况下foo和负载指示同时存在,但foo不是visible?直到负载指示消失.

有没有办法,或许在env.rb,向watir-webdriver表明它应该始终wait_while存在这个元素?

watir cucumber browser-testing watir-webdriver pageobjects

1
推荐指数
1
解决办法
123
查看次数