Tag: 测试

JavaScript:在另一个函数调用完成后继续执行函数

编辑: http : //jsfiddle.net/vol7ron/wQZdM/ 小提琴应该用于帮助说明我正在尝试做什么以及发生了什么。 应使用第二个选项值填充子选择。 原始问题: 不确定最好的方式。 我正在创建一个测试脚本来自动填充表单上的输入。 它包括一系列下拉select框,用于填充onChange事件中的其他select选项。 尝试自动填充表单时,子选择没有任何选项。 console.clear(); // non-select inputs $(‘:input:not([type=”hidden”],[type=”button”])’).each(function(){ $(this).val($(this).attr(‘name’)) // test value is simple input’s name }); // select inputs var count=0, cutoff=7500; $(‘select’).each(function(){ var t = $(this); var c = t.children(‘option’); while( c.length <= 1 && count < cutoff){ count++; c = $(this).children('option'); // tried not […]

JS测试:从CasperJS和PhanthomJS触发jQuery keypress事件

我的网页有一个输入键按下事件的监听器。 我试图运行下面的casperjs代码来触发此事件,但没有成功。 虽然没有提示错误,但是(evaluate)函数返回true并且代码在我的chrome控制台上正常工作,应该向服务器发送请求的函数结果永远不会发生 casper.then(function(){ var result = this.evaluate(function(term){ var search_form_id = “#search-form”; $(search_form_id).val(term); jQuery(search_form_id).trigger(jQuery.Event(‘keypress’, {which: 13, keyCode: 13})); return true; }, ‘Techcrunch’); console.log(result); }); 这是关于PhantomJS和jQuery事件的任何问题吗?

Phantom.js – 在警报框内获取文本

是否可以使用Phantom.js将文本放入警报框中? var page = require(“webpage”).create() , assert = require(“assert”); page.open(“http://www.mysite.com/page”, function (status) { page.includeJs(“jquery-1.10.2.min.js”, function () { var alertText = page.evaluate(function () { //This should cause an alert dialog to appear $(‘button[type=”submit”]’).click(); //This doesn’t work, but is there some equivalent to this? return $(“alert”).val(); }); assert.equal(alertText, “Thanks for clicking Submit!”); }); });

在qUnit中测试整页重定向

我有以下function var redirect = function() { window.location.href = “http://www.google.com”; } 我想用qUnit测试这个函数。 问题是,当我调用运行测试的HTML文档时,只要它进入调用redirect()的测试,浏览器就会加载google.com。 我想做的是以某种方式模拟window.location.href,以便它不重定向,所以我可以检查它是否设置为正确的值。 以一种更可测试的方式重写它将是一个可接受的答案,并受到欢迎。 由于我使用的是qUnit,因此一些jQuery魔法是合适的,就像一些老式的重构一样。 建议为window.location.href添加自定义setter,但我无法弄清楚如何使其工作。 请不要改变我的代码行为的建议。

使用Selenium测试jQuery Drag&Drop和Droppable

我有一个使用jQuery Drag&Drop的页面,我想使用Selenium为这个过程构建一个相对强大的测试套件。 看看Selenium,我发现它在jQuery插件上有一个Drag&Drop命令,如: FullCalendar ,但是当我使用Selenium IDE尝试记录’拖放时,我没有得到任何记录的事件。 那么我应该尝试使用jQuery选择器来定位事件吗? 因为以下内容不起作用(针对示例页面上的“12p午餐”) dragAndDrop /html/body/div[2]/div/div/div[2]/div/div/div/div/div[8]/div +100,+100 甚至点击元素 click /html/body/div[2]/div/div/div[2]/div/div/div/div/div[8]/div +100,+100 在这两种情况下都找不到XPath 。 那么我该如何定位这个变化的元素呢? 如果我在选择器中有唯一的ID ,我可以定位吗? 无论哪种方式,拖放似乎都不起作用: dragAndDrop id=targetelement +100,+100 我也可以使用jQuery定位’Location’中的元素吗? dragAndDrop selenium.getuserwindow.browserbot.jQuery(‘#targetelement’) +100,0