js后无帖子表单.提交()硒

2024-09-30 06:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Selenium测试一个简单的网站,它搜索数据库并显示结果。在Selenium测试期间,用于搜索、上载文件和登录的每个表单都可以正常工作。结果页加载正确,元素选择正确。在

选择元素后,将创建并提交一个表单。所有这些都是手工操作的,直到几个小时前(在此期间代码没有更改,我检查了差异),它也与Selenium一起工作。在

现在一切正常运转直到表单.提交(). javascript到达这一行,然后在服务器日志中没有POST。 在客户端日志中显示:

[WEBDRIVER][INFO]合成_鼠标。js:9914名为fireMouseEvent mousemove 1032.2000122070312,100,[object XrayWrapper[object HTMLInputElement]]

[WEBDRIVER][INFO]合成_鼠标:9812合成鼠标.click[object XrayWrapper[object HTMLInputElement]]

[WEBDRIVER][INFO]合成_鼠标。js:9824准备做一个bot.action.click在[object XrayWrapper[object HTMLInputElement]]

[WEBDRIVER][INFO]命令_处理器。js:8089不再加载文档。在

以下是js代码,在删除后调用,尽管我认为这不是问题所在(selectedbox包含每个复选框的id):

 function on_load() {
  var delBut = document.getElementById("delete");
  delBut.addEventListener("click", function(){
   if(selectedBoxes.length > 0)
     createForm("delete");
  } );
 }
 function createForm(which, forSale)
 {
 //create form
 var f = document.createElement("form");
 f.setAttribute('method',"post");
 f.setAttribute('action',"/results/");
 //get changed values
 for (var i = 0; i < selectedBoxes.length; ++i) {
  //create input object
  var input = document.createElement("input");
  //use text so values can be read on server side
  input.setAttribute("type", "text");
  input.setAttribute("name", which);
  input.setAttribute("value", '{"db_id":'+ selectedBoxes[i] + '}');

 }
 //send new form
 f.submit();
}


window.onload = on_load();

硒代码:

^{pr2}$

Tags: 代码info表单inputobjectvarseleniumjs

热门问题