Django Selenium PhantomJS表单未提交

时间:2015-06-28 19:09:54

标签: python django forms selenium phantomjs

在我的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

发生了什么事?

0 个答案:

没有答案