因为测试跑流程要蛋疼的一直发标,so写了这个发标脚本。代码不短,但是实现很简单,直接模拟浏览器操作就行了。期间出现了一个小问题,就是第二页部分内容填不上去,研究了下,发现在执行填充语句时,dom还没加载出来,相当于display还是none的状态,然后加了个判断解决了。效果图如下:
1 // ==UserScript== 2 // @name useForXinhehui 3 // @namespace http://www.cnblogs.com/bigbigsunrise/ 4 // @description 鑫合汇自动发标脚本 5 // @include http://bc-api-test.xinhehui.com/index.php/Financing/Product/add 6 // @include http://test.xinhehui.com/Financing/Product/add 7 // @include https://ywuat.xinhehui.com/Financing/Product/add 8 // @version 1.0 9 // @grant none 10 // @author bigbigsunrise 11 // ==/UserScript== 12 13 14 // --------------- 用户界面start --------------- // 15 var createContent = function() { 16 // 获取mainDiv 17 var mainDiv = document.getElementsByClassName("info_fill_step")[0]; 18 // 标名 19 var prjNameSpan = document.createElement("span"); 20 prjNameSpan.innerHTML = ‘<input type="text" id="txt1" />‘; 21 mainDiv.appendChild(prjNameSpan); 22 document.getElementById("txt1").value = "发标测试0912"; 23 24 // start-time 25 var startTimeSpan = document.createElement("span"); 26 startTimeSpan.innerHTML = ‘<input type="text" id="txt2" />‘; 27 mainDiv.appendChild(startTimeSpan); 28 document.getElementById("txt2").value = getCurrentTime(); 29 // document.getElementById("txt2").value = "2015-09-13 14:20:00"; 30 // document.getElementById("txt2").setAttribute("style", "position:‘left:20px‘"); 31 document.getElementById("txt2").setAttribute("style", "width:135px"); 32 33 // end-time 34 var endTimeSpan = document.createElement("span"); 35 endTimeSpan.innerHTML = ‘<input type="text" id="txt3"/>‘; 36 mainDiv.appendChild(endTimeSpan); 37 document.getElementById("txt3").value = getCurrentTime(); 38 // document.getElementById("txt3").value = "2016-09-03 19:00:00"; 39 40 // 三种标的选择框 41 var BidTypeSpan = document.createElement("span"); 42 BidTypeSpan.innerHTML = "<select id=‘rpSet‘ style=‘width:60px‘> 43 <option>日益升</option> 44 <option>企益融</option> 45 <option>聚优宝</option> 46 </select>"; 47 mainDiv.appendChild(BidTypeSpan); 48 49 // 是否新客 50 var NewGuestSpan = document.createElement("span"); 51 NewGuestSpan.innerHTML = "<select id=‘rpSet2‘ style=‘width:40px‘> 52 <option>否</option> 53 <option>是</option> 54 </select>"; 55 mainDiv.appendChild(NewGuestSpan); 56 57 // 发标按钮 58 var submitBtnSpan = document.createElement("span"); 59 submitBtnSpan.innerHTML = "<input type=‘button‘ id=‘btn‘ />"; 60 mainDiv.appendChild(submitBtnSpan); 61 document.getElementById("btn").value = "发布"; 62 63 // button触发go方法 64 document.getElementById("btn").addEventListener("click", go); 65 }; 66 // --------------- 用户界面end --------------- // 67 68 // 日期格式 2014-09-02 19:00:00 69 var getCurrentTime = function() { 70 var now = new Date(); 71 var year = now.getFullYear(); 72 var month = now.getMonth() + 1; // 真实的月份要加1 73 month < 10? month = ‘0‘ + month: month; 74 var date = now.getDate(); 75 date < 10? date = ‘0‘ + date: date; 76 var hour = now.getHours(); 77 hour < 10? hour = ‘0‘ + hour: hour; 78 var minute = now.getMinutes(); 79 minute < 10? minute = ‘0‘ + minute: minute; 80 var second = now.getSeconds(); 81 second < 10? second = ‘0‘ + second: second; 82 var str = year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second; 83 return str; 84 }; 85 86 // firstPage填写 87 var firstPage = function() { 88 // 融资规模 89 document.getElementsByName(‘demand_amount‘)[0].value = ‘1‘; 90 91 // 期限 92 document.getElementsByName(‘time_limit‘)[0].value = ‘7‘; 93 94 // 期限(天、月) 95 var val = document.getElementById("rpSet").value; 96 if(val === ‘企益融‘ || val === ‘聚优宝‘) 97 document.getElementById("ui-multiselect-0-option-1").click(); 98 99 // 预期利率(日、月、年) 100 document.getElementById("ui-multiselect-1-option-2").click(); 101 102 // 预期利率 103 document.getElementsByName("rate")[0].value = "10"; 104 105 // 保障性质 106 // 还款方式 107 108 // 融资开标时间 109 document.getElementById("start_bid_time").value = document.getElementById("txt2").value; 110 111 // 融资截止时间 112 document.getElementById("end_bid_time").value = document.getElementById("txt3").value; 113 114 // 产品类型 115 var type = document.getElementById("rpSet").value; 116 if(type === ‘日益升‘) 117 document.getElementById("ui-multiselect-3-option-0").click(); 118 else if(type === ‘企益融‘) 119 document.getElementById("ui-multiselect-3-option-1").click(); 120 else document.getElementById("ui-multiselect-3-option-2").click(); 121 122 // 投资起始金额 123 // 最大投资金额 124 // 投资递增金额 125 // 支付方式 126 // 借款人类型 127 128 // 借款人 129 document.getElementById("borrower").value = "杭州日月礼盒包装有限公司"; 130 131 // 下一步按钮 132 document.getElementsByClassName("btn_text step_next")[0].click(); 133 }; 134 135 // 日益升第二页填写 136 var rys_nextPage = function() { 137 setTimeout(function() { 138 var res = document.getElementsByName("trade")[0].getAttribute("valid"); 139 if(res) { 140 // 产品名称 141 document.getElementsByName("prj_name")[0].value = document.getElementById("txt1").value; 142 143 // 起息日 144 145 // 是否可能提前到期 146 document.getElementById("dq1").checked = true; 147 148 // 是否允许线下登记 149 150 //资金用途 151 document.getElementsByName("money_using")[0].value = ‘融资方为杭州日月礼盒包装有限公司,为1,需融资1万元,使用期限为7天。‘; 152 153 // 还款来源 154 document.getElementsByName("repay_origin")[0].value = "test"; 155 156 // 保障措施 157 158 // 担保人 159 document.getElementById("ui-multiselect-10-option-1").click(); 160 161 // 保障措施说明 162 document.getElementsByName("addcredit_desc")[0].value = "其他:[111]"; 163 164 // 是否新客项目 165 var val = document.getElementById("rpSet2").value; 166 if(val === "是") 167 document.getElementsByName("is_new")[0].checked = true; 168 169 // 是否允许多次投标 170 document.getElementById("is_multi_buy1").checked = true; 171 172 // 所属行业 173 document.getElementsByName("trade")[0].value = "制造业"; 174 175 // 成立日期 176 document.getElementsByName("fund_date")[0].value = "2005"; 177 178 // 注册资本 179 document.getElementsByName("register_capital")[0].value = "200"; 180 181 // 主营业务 182 document.getElementsByName("main_business")[0].value = "生产、加工:纸质包装盒。 销售:包装材料;含下属分支机构经营范围。***"; 183 184 // 企业规模 185 document.getElementById("ui-multiselect-30-option-1").click(); 186 187 // 性别 188 document.getElementById("sex1").checked = true; 189 190 // 年龄 191 document.getElementsByName("age")[0].value = "40"; 192 193 // 学历 194 document.getElementById("ui-multiselect-31-option-4").click(); 195 196 // 上一年度销售收入 197 // 婚姻状况 198 // 户籍城市 199 // 企业贷款卡状态 200 // 企业信用状况 201 // 投资资金转入账户 202 // 适用产品 203 // 发布机构 204 // 发布按钮 205 } else 206 rys_nextPage(); 207 }, 1000); 208 }; 209 210 // 企益融第二页填写 211 var qyr_nextPage = function() { 212 setTimeout(function() { 213 var res = document.getElementsByName("trade")[0].getAttribute("valid"); 214 if(res) { 215 // 产品名称 216 document.getElementsByName("prj_name")[1].value = document.getElementById("txt1").value; 217 218 // 起息日 219 220 // 是否可能提前到期 221 document.getElementsByName("is_early")[2].checked = true; 222 223 // 是否允许线下登记 224 225 //资金用途 226 document.getElementsByName("money_using")[1].value = ‘融资方为杭州日月礼盒包装有限公司,为1,需融资1万元,使用期限为7天。‘; 227 228 // 还款来源 229 document.getElementsByName("repay_origin")[1].value = "test"; 230 231 // 保障措施 232 233 // 担保人 234 document.getElementById("ui-multiselect-15-option-1").click(); 235 236 // 保障措施说明 237 document.getElementsByName("addcredit_desc")[1].value = "其他:[111]"; 238 239 // 是否新客项目 240 var val = document.getElementById("rpSet2").value; 241 if(val === "是") 242 document.getElementsByName("is_new")[2].checked = true; 243 244 // 是否允许多次投标 245 document.getElementsByName("is_multi_buy")[2].checked = true; 246 247 // 所属行业 248 document.getElementsByName("trade")[0].value = "制造业"; 249 250 // 成立日期 251 document.getElementsByName("fund_date")[0].value = "2005"; 252 253 // 注册资本 254 document.getElementsByName("register_capital")[0].value = "200"; 255 256 // 主营业务 257 document.getElementsByName("main_business")[0].value = "生产、加工:纸质包装盒。 销售:包装材料;含下属分支机构经营范围。***"; 258 259 // 企业规模 260 document.getElementById("ui-multiselect-33-option-1").click(); 261 262 // 性别 263 document.getElementById("sex1").checked = true; 264 265 // 年龄 266 document.getElementsByName("age")[0].value = "40"; 267 268 // 学历 269 document.getElementById("ui-multiselect-34-option-4").click(); 270 271 // 是否可以转让 272 document.getElementById("zr1").checked = true; 273 274 // 发布按钮 275 } else 276 qyr_nextPage(); 277 }, 1000); 278 }; 279 280 // 聚优宝第二页填写 281 var jyb_nextPage = function() { 282 setTimeout(function() { 283 var a = document.getElementsByName("is_new")[8].parentNode.parentNode.parentNode; 284 var res = window.getComputedStyle(a, null)[‘display‘]; 285 286 if(res !== ‘none‘) { 287 // 产品名称 288 document.getElementsByName("prj_name")[4].value = document.getElementById("txt1").value; 289 290 // 起息日 291 292 // 是否可能提前到期 293 document.getElementsByName("is_early")[8].checked = true; 294 295 // 是否允许线下登记 296 297 // 保障措施 298 299 // 担保人 300 document.getElementById("ui-multiselect-27-option-1").click(); 301 302 // 保障措施说明 303 document.getElementsByName("addcredit_desc")[4].value = "其他:[111]"; 304 305 // 是否可以转让 306 document.getElementsByName("is_transfer")[6].checked = true; 307 308 // 投资资金转入账户 309 310 // 托管机构 311 document.getElementsByName("custodian")[0].value = "test"; 312 313 // 托管机构网址 314 document.getElementsByName("custodian_url")[0].value = "test"; 315 316 // 本债券挂牌公告链接网址 317 document.getElementsByName("announcement_url")[0].value = "test"; 318 319 // 是否新客项目 320 var val = document.getElementById("rpSet2").value; 321 if(val === "是") { 322 document.getElementsByName("is_new")[8].checked = true; 323 } 324 325 // 是否允许多次投标 326 // 下一步按钮 327 // document.getElementsByClassName("btn_text submit_prj")[0].click(); 328 } else 329 jyb_nextPage(); 330 }, 1000); 331 }; 332 333 var go = function() { 334 firstPage(); 335 var type = document.getElementById("rpSet").value; 336 if(type === ‘日益升‘) 337 rys_nextPage(); 338 else if(type === ‘企益融‘) 339 qyr_nextPage(); 340 else jyb_nextPage(); 341 }; 342 343 window.onload = function() { 344 createContent(); 345 };
时间: 2024-11-03 05:34:23