在我的Django应用程序中,我将WebDrver从Firefox切换到PhantomJS。但是,我的测试不再成功提交表单。
def setUp(self):
self.driver = webdriver.PhantomJS()
self.driver.set_window_size(1120, 550)
super(CreateLevelTestCase, self).setUp()
def test_know_all_the_words(self):
self.driver.get(self.live_server_url)
self.driver.find_element_by_tag_name("form").submit()
time.sleep(1)
self.driver.find_element_by_tag_name("form").submit()
time.sleep(1)
self.driver.find_element_by_tag_name("form").submit()
time.sleep(1)
self.assertNotEqual(self.driver.current_url.find("/my/stats"), -1) # Test that the page changed.
更新:以下是表单提交代码:
$('#testform').live('submit', function(e){
$("#progressbar").show().find('.progress').addClass('active').find('.bar').css('width', '100%');
$.post($(this).attr('action'), $(this).serialize(), function(res){
if (res.success && !res.end) {
$('#testform input[name="test"]').val(res.current_test);
$("#progressbar .progress").removeClass('active').find('.bar').css('width', parseInt(res.current_test / 3.0 * 100) + '%');
$('#text').text(res.text).attr('data-simp', res.text).attr('data-trad', res.text_trad);
readiness();
} else if (res.success && res.end){
window.location = res.text;
} else {
alert(res.errors)
}
}, 'json')
e.preventDefault();
return false;
});
更新2 :Ghostdriver日志
[ERROR - 2015-06-30T00:38:37.036Z] Session [54ea6630-1ec0-11e5-9b65-095407f6737e] - page.onError - msg: TypeError: undefined is not a constructor (evaluating 'a')
:262 in error
[ERROR - 2015-06-30T00:38:37.036Z] Session [54ea6630-1ec0-11e5-9b65-095407f6737e] - page.onError - stack:
(anonymous function) (http://localhost:8081/static/css/bootstrap/js/bootstrap.min.js:6)
:262 in error
[ERROR - 2015-06-30T00:38:37.037Z] Session [54ea6630-1ec0-11e5-9b65-095407f6737e] - page.onError - msg: ReferenceError: Can't find variable: jQuery
:262 in error
[ERROR - 2015-06-30T00:38:37.037Z] Session [54ea6630-1ec0-11e5-9b65-095407f6737e] - page.onError - stack:
global code (http://localhost:8081/:186)
:262 in error
主页是一个测试,其内容在提交表单三次后发生变化。在最后一次提交表单后,测试完成,我们向用户显示统计页面。
当我使用webdriver.Firefox()时,测试工作正常。但是,当我使用PhantomJS时,assertNotEqual中引用的current_url仍为http://localhost:8081。
发生了什么事?