【问题标题】:Javascript can't get text inputed by Sahi in an <input type="text">Javascript 无法获取 Sahi 在 <input type="text"> 中输入的文本
【发布时间】:2011-12-24 12:35:38
【问题描述】:

TL;DR : 在 Behat+Mink (@javascript w/ Sahi) 场景中,Sahi 在&lt;input&gt; 中输入了一些文本,页面中的 Javascript 无法获取 Sahi 输入的内容

更新:

解决方案:下载最新版本的 Sahi 解决了该问题。无论错误是什么,它都已得到纠正。

上下文

我正在建立一个小型演示网站,向我的团队展示 Behat+Mink 可以做什么。有几页,可以输入一个正方形的大小并得到这个正方形的周长。 一页使用普通的旧 POST 方法,另一页使用 Javascript 计算周长

“JS页面”的网址:http://behatdemo.widop.com/js-square

为了向我的团队展示测试 javascript 是可能的,我使用 Sahi 作为 Mink 驱动程序,但它似乎不起作用。我写了一个场景,其中用户输入6 作为正方形边长,并得到24 作为周长([github 上的文件链接] (https://github.com/clemherreman/behatdemo/blob/master/features /js_square.feature#L7))

@javascript
Scenario: Inputting a valid side size
Given I am on "/js-square"
When I fill in "side" with "6"
And I press "Calculate"
And I wait for the result to appear
And I wait a little
Then I should see "Perimeter (using js): 24 cm"

注意:And I wait a little 是一个等待 10 秒的调试步骤,以便能够查看 Sahi Firefox 窗口上显示的内容

问题

似乎计算周长的javascript的sn-p无法获得Sahi输入的6。这是代码([github 上的文件链接] (https://github.com/clemherreman/behatdemo/blob/master/website/views/js-square.twig#L27))

我得到的是"Perimeter (using js): Error cm",而不是"Perimeter (using js): 24 cm"

(function($) {
  $('form').submit(function(e) {
    e.preventDefault();
    // #side is a <input type="text"> tag, where user input a square side length
    var side = parseFloat(jQuery('#side').val()) || NaN;
    var perimeter = side*4.0 || 'Error';
    $('#sidebar').text('Perimeter (using js): '+perimeter+ ' cm');
  });
})(jQuery);

调试/想法

经过一番调查,事实证明jQuery('#side').val()返回一个空字符串,这就是为什么我会显示“错误”而不是周长。 似乎 Javascript 无法获取 Sahi 在场景中输入的内容

我很坚持这个,我觉得我错过了一些东西。

链接

版本

  • Behat:2.1.2
  • 貂皮:1.1.1
  • 萨希:3.5
  • PHP:5.3.6

【问题讨论】:

    标签: php bdd behat sahi mink


    【解决方案1】:

    我无法重现您的错误,我的 Behat/Mink/Sahi 设置一切正常: http://screencast.com/t/2rTHo7jj

    场景通过

    我在 OSX 上使用 Sahi 3.5Behat 2.1.2Mink 1.1.1 以及最新版本的 Chrome & PHP 5.3.8-ZS5.5.0

    尝试在 Chrome 下运行测试:

    default:
      context:
        parameters:
          base_url: YOURBASEURL
          browser: chrome
    

    【讨论】:

    • 天哪,感谢您抽出宝贵时间。我看到你和我一样使用 OS X。您认为我的错误可能来自您和我之间的版本差异吗?你能列出 Behat、Mink、PHP、Sahi 甚至 Firefox 的版本号吗?再次 Ty =)
    • 我不想强加于你的好意,但如果你使用 firefox 运行 Scenario,它仍然有效吗?如果有(或者即使没有),请告诉我您拥有的 Firefox 版本(如果有的话)。我真的很希望能够重现这个错误。
    • 使用 Firefox 8,它也可以工作:)。不知道为什么它不在你的情况下。 :O
    • 问题是我也不是。如果我发现它为什么不起作用,我会调查并发布这个问题。 Ty 给你时间 =)
    • 更新到最新版本的 Sahi 修复了它,请参阅我的问题。
    猜你喜欢
    • 2011-09-09
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 2013-02-11
    • 2011-07-14
    相关资源
    最近更新 更多