▲第三部分,软件脚本步骤说明▲:
如上图所示,这里是登陆动作,因为这个登陆又有验证码了,那就又要写上判断登陆有没有成功的步骤的。
其中这个登陆步骤里,有一个JS输入,是我们新鲜的玩意儿,下面这里是源码,document.getElementById('txtCheckword').value='[验证码识别结果]';有用的是这段,输入验证码结果,这种是防止网页输入后,验证码会变的输入方法,txtCheckword这个就是输入验证码框的ID定位,其它这些源码都是固定用法,不需要更改的,我们每一次只要把这个变量给找出来,替换进去,就可以防止一些网页输入验证码变动的操作方法。
http://bbs.niubt.cn/static/image/common/codebg.gif"); color: rgb(102, 102, 102); zoom: 1; border-color: rgb(236, 234, 234);">
<% keyID=网页执行JS62124
{网页执行JS}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>txtCheckword</定位值>
<元素序号>0</元素序号>
<JS代码>document.getElementById('txtCheckword').value='[验证码识别结果]';</JS代码>
<JS变量></JS变量>
<转软件变量></转软件变量>
<备注>验证码识别结果</备注>
{/网页执行JS}
%>
输入了验证码,登陆自然就会成功,要注意的是, 这个网站所有验证码都是数字,但很难看清楚,只能误打误判断了。
注意找到他的发帖网址,是一个分类再进去发帖的网站,像这种网站先进分类的,最好的方法是利用先前发过的分类,我们进行第二次分类,把分类给整进去,像阿里巴巴那样的,最好的方法是复制发过的商品信息发布,然后想改什么就改什么,这个网站没有这个功能,我们也要利用它分类好的,做软件要做到最简捷的方法实,最省事的步骤去实现功能。
到了发帖页面里,上传动作有一个隐形的陷阱是大部分人会犯的,如上画所示,经常他这种会生成一个ID让你定位,我们经常也没有认真看吧,居然出来ID定位,那就上传输入图片地址就完工了,但第二次到这步上传的时候,发现不成功上传,那就是因为这个ID其实是变量陷井来的。
这个才是我们正确的定位方法,如上图所示,定位源码是这段:type="application/x-shockwave-flash" data="/PicManage/plupload.flash.swf" width="100%" height="100%" style="outline:0">
眯了传图,我们还要加一个点击,点击上传,把图片点这个开始上传才能传进去他网站,他网站传图可谓最麻烦的步骤了。
上传完图片后,网站并不会刷新上传的图片,而是需要这二步去点击相册,如上图这样,循环点击一下,把刚上传的图片给刷新出来。
最后才能把图片给确定出来,效果才会如上图所示,也就是说这个上传图片就占了八步,所以这个网站上传图片是很不好的用户体验哦。希望管理员能重视这个烦人的问题吧。下面就是这个脚本所有的源码步骤:
http://bbs.niubt.cn/static/image/common/codebg.gif"); color: rgb(102, 102, 102); zoom: 1; border-color: rgb(236, 234, 234);">
<% keyID=打开网址10542
{打开网址}
<URL>https://member.kuyibu.com/signin.aspx?reUrl</URL>
<超时>20</超时>
<备注>登陆</备注>
{/打开网址}
%>
<% keyID=倒计时-36323
{倒计时}<秒>3</秒><备注>倒计时3秒</备注>{/倒计时}
%>
<% keyID=输入15966
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>loginName</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}账号列表|账号|自动{/获取列表值}</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>账号</备注>
{/输入}
%>
<% keyID=输入19834
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>passwordlog</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}账号列表|密码|自动{/获取列表值}</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>密码</备注>
{/输入}
%>
<% keyID=点击86306
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>txtCheckword</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>点出验证码</备注>
{/点击}
%>
<% keyID=获取网页验证码53478
{网页验证码}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>部分源码</定位类型>
<定位值><img src="/checkcode/?d=</定位值>
<元素序号>0</元素序号>
<图片宽>0</图片宽>
<图片高>0</图片高>
{/网页验证码}
%>
<% keyID=验证码识别-7238
{验证码识别}
<验证码来源>[网页验证码]</验证码来源>
<验证码类型>数字字母混合</验证码类型>
{/验证码识别}
%>
<% keyID=网页执行JS62124
{网页执行JS}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>txtCheckword</定位值>
<元素序号>0</元素序号>
<JS代码>document.getElementById('txtCheckword').value='[验证码识别结果]';</JS代码>
<JS变量></JS变量>
<转软件变量></转软件变量>
<备注>验证码识别结果</备注>
{/网页执行JS}
%>
<% keyID=点击57965
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>userLogin</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>登陆</备注>
{/点击}
%>
<% keyID=倒计时-72341
{倒计时}<秒>3</秒><备注>倒计时3秒</备注>{/倒计时}
%>
<% keyID=逻辑判断-9407
{如果}<逻辑>[网页源码]<不包含><a href="/trade/product.aspx"></逻辑><否则跳转到结束>keyid=95273</否则跳转到结束><备注>没有登陆成功</备注>
{/如果}
%>
<% keyID=账号列表77269
{切换列表}
<列表集合>
账号列表|否|下一行|0|
</列表集合>
{/切换列表}
%>
<% keyID=动作跳转82220
{动作跳转}
<当>直接跳转</当>
<条件>包含</条件>
<值></值>
<跳转到>keyid=打开网址10542</跳转到>
<跳转频率>0</跳转频率>
{/动作跳转}
%>
<% keyID=95273
{否则}{/否则}
%>
<% keyID=95273else
{逻辑结束}{/逻辑结束}
%>
<% keyID=打开网址54345
{打开网址}
<URL>https://member.kuyibu.com/trade/product.aspx</URL>
<超时>20</超时>
<备注>发帖</备注>
{/打开网址}
%>
<% keyID=倒计时-26263
{倒计时}<秒>2</秒><备注>倒计时2秒</备注>{/倒计时}
%>
<% keyID=下拉选择46401
{下拉选择}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>XPATH</定位类型>
<定位值>//*[@id="form1"]/DIV[2]/DIV[2]/DIV/DIV/DIV/DIV/UL/LI[2]/DIV[2]/SELECT</定位值>
<元素序号>0</元素序号>
<选择序号>1</选择序号>
{/下拉选择}
%>
<% keyID=点击79884
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>部分源码</定位类型>
<定位值><input type="submit" value="下一步,填写产品详细信息"></定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>下一步</备注>
{/点击}
%>
<% keyID=倒计时-262634663
{倒计时}<秒>2</秒><备注>倒计时2秒</备注>{/倒计时}
%>
<% keyID=输入40579
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>pname</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}总标题总内容|标题|自动{/获取列表值}</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>名称</备注>
{/输入}
%>
<% keyID=输入41258
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>ptitle</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}总标题总内容|标题|自动{/获取列表值}</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>标题</备注>
{/输入}
%>
<% keyID=输入29747
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>punits</定位值>
<元素序号>0</元素序号>
<输入值>10</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>10</备注>
{/输入}
%>
<% keyID=输入2974757
{输入}
<框架定位类型>部分源码</框架定位类型>
<框架定位值><body contenteditable="true" class="cke_editable cke_editable_themed cke_contents_ltr cke_show_borders" spellcheck="false"></框架定位值>
<定位类型>部分源码</定位类型>
<定位值><body contenteditable="true" class="cke_editable cke_editable_themed cke_contents_ltr cke_show_borders" spellcheck="false"></定位值>
<元素序号>0</元素序号>
<输入值>{违法词替换}{获取列表值}总标题总内容|内容|自动{/获取列表值}{/违法词替换}</输入值>
<输入类型>innerHTML</输入类型>
<限制字数>0</限制字数>
<备注>内容</备注>
{/输入}
%>
<% keyID=点击15511
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值>3</框架定位值>
<定位类型>部分源码</定位类型>
<定位值><button tabindex="-1" style="height: 100%; width: 100%;">
上传图片
</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>上传图片</备注>
{/点击}
%>
<% keyID=上传文件94817
{上传文件}
<框架定位类型>序号</框架定位类型>
<框架定位值>4</框架定位值>
<定位类型>部分源码</定位类型>
<定位值>type="application/x-shockwave-flash" data="/PicManage/plupload.flash.swf" width="100%" height="100%" style="outline:0"></定位值>
<元素序号>0</元素序号>
<点击方式>模拟鼠标</点击方式>
<文件路径>{获取列表值}上传图片|1|自动{/获取列表值}</文件路径>
{/上传文件}
%>
<% keyID=点击95208
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值>4</框架定位值>
<定位类型>部分源码</定位类型>
<定位值><span class="ui-button-text">开始上传</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>开始上传</备注>
{/点击}
%>
<% keyID=倒计时-55064
{倒计时}<秒>3</秒><备注>倒计时3秒</备注>{/倒计时}
%>
<% keyID=点击26451
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值>3</框架定位值>
<定位类型>XPATH</定位类型>
<定位值>//*[@id="moxman-59-head"]/BUTTON</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>关闭</备注>
{/点击}
%>
<% keyID=点击37538
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值>3</框架定位值>
<定位类型>ID</定位类型>
<定位值>moxman-99-text</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>点相册</备注>
{/点击}
%>
<% keyID=点击16783
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值>3</框架定位值>
<定位类型>ID</定位类型>
<定位值>moxman-98-text</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>刷新相册</备注>
{/点击}
%>
<% keyID=点击68318
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值>3</框架定位值>
<定位类型>XPATH</定位类型>
<定位值>//*[@id="picmce0"]</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>选图</备注>
{/点击}
%>
<% keyID=点击98871
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值>3</框架定位值>
<定位类型>ID</定位类型>
<定位值>selectPicdo</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>确定图片</备注>
{/点击}
%>
<% keyID=点击19745
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>txtCheckword</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>验证码</备注>
{/点击}
%>
<% keyID=获取网页验证码45851
{网页验证码}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>部分源码</定位类型>
<定位值><img src="/checkcode/?d=</定位值>
<元素序号>0</元素序号>
<图片宽>0</图片宽>
<图片高>0</图片高>
{/网页验证码}
%>
<% keyID=验证码识别-723879
{验证码识别}
<验证码来源>[网页验证码]</验证码来源>
<验证码类型>数字字母混合</验证码类型>
{/验证码识别}
%>
<% keyID=网页执行JS6212453
{网页执行JS}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>txtCheckword</定位值>
<元素序号>0</元素序号>
<JS代码>document.getElementById('txtCheckword').value='[验证码识别结果]';</JS代码>
<JS变量></JS变量>
<转软件变量></转软件变量>
<备注>验证码识别结果</备注>
{/网页执行JS}
%>
<% keyID=点击68528
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>fristPic</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>点快速</备注>
{/点击}
%>
<% keyID=下拉选择20597
{下拉选择}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>productCategory</定位值>
<元素序号>0</元素序号>
<选择序号>1</选择序号>
<备注>选择自定义</备注>
{/下拉选择}
%>
<% keyID=点击18230
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>Button1</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>提交</备注>
{/点击}
%>
<% keyID=倒计时-20656
{倒计时}<秒>10</秒><备注>倒计时10秒</备注>{/倒计时}
%>
<% keyID=请选择要切换的列表22754
{切换列表}
<列表集合>
标题1|否
总标题总内容|否
上传图片|否
账号列表|否
标题2|否
内容2|否
分类全国|否
变量1|否
变量2|否
变量3|否
变量4|否
内容1|否
标题3|否
内容3|否
内容4|否
</列表集合>
{/切换列表}
%>
<% keyID=动作跳转81011
{动作跳转}
<当>直接跳转</当>
<条件>包含</条件>
<值></值>
<跳转到>keyid=打开网址54345</跳转到>
<跳转频率>0</跳转频率>
{/动作跳转}
%>
为什么把源码放出来,是方便修改和记录的,这样就对某一步不行,就用记事本,或是什么工具,批量替换过去,就可以避免一步一步修改,或是删减哪几步,也是可以实现在这里修改的。这个网站主要还是在这个图片上传和验证码方面比较繁琐的,以前居然没有发面有这么困难呢?可也没有发布什么简便的方法了,只能抱着这个麻烦的做法安渡晚年了。