Python Selenium无法触发Javascript事件

时间:2017-04-09 17:44:10

标签: javascript python ajax selenium

我有一个按钮:

<button id="saveBtn" data-dismiss="modal" class="btn btn-primary save">Save</button>

单击时,它会引发AJAX调用并修改页面:

  $('.tab-pane').on('click', 'button.save', function() {

      swot_type = $('#typeValue').val();
      label = $('#label').val();
      details = $('#details').val();

      $.ajax({
          url: '/add_swot_entry/',
          type: "POST",
          data: {
              'type': swot_type,
              'label': label,
              'details': details
          },

          dataType: 'json',
          success: function (data) {
              $("#strength-group").append(
                  '<li id='
                  + data.id +
                  ' class="list-group-item item-display">'
                  + data.label +
                  '</li>'
  );}});});

它还通过data-dismiss挂钩隐藏了引导模式。

除非我尝试使用Selenium进行操作,否则每次都可以正常工作:

browser.find_element_by_id("saveBtn").click()

虽然模态每次仍然会关闭,但自定义Javascript只会每隔四次或五次执行一次。大多数情况下页面未更改且服务器未与之通信。

我已尝试实施等待:

 wait.until(EC.element_to_be_clickable((By.ID, elm)))

但它似乎没有帮助。我刚刚升级到最新版本的Selenium(3.3.3),但它仍然遇到了麻烦。我在Windows 10上使用Chrome。

0 个答案:

没有答案