莫愁前路无知己,天下谁人不识君。。。。

python自动化编写过程一些脚本窍门

上一篇 / 下一篇  2018-06-19 10:58:51 / 个人分类:测试技巧

很多时候直接写脚本,find_element固定模式虽好,但有时候里面的元素变动并不可靠,尤其是前端的界面知识变化多端,日新月异。。。回到正题,又是有规定模式查找元素,没有js,jq来的快和实际,经常会碰到easyui之类的框架,就会明白。如下:
1.easy_ui textbox下的textarea没有id值,如果不想用xpath赋值,怎么处理?
eg:
<div>
<span i18n="">备注</span>
<input class="easyui-textbox textbox textbox-f" style="width: 528px; display: none;" data-
options="width:&quot;540px&quot;,height:&quot;60px&quot;,multiline:true,required:true,validType:&quot;length[0,200]&quot;" 
textboxname="remark">
<textarea class="textbox-text validatebox-text textbox-prompt validatebox-invalid" autocomplete="off" placeholder="" style="margin-left: 
0px; margin-right: 0px; height: 49.7778px; width: 516.778px;" title=""></textarea>
</div>
破解1:js1 = "$('[textboxname=\"remark\"]').textbox('setValue', '123')"
driver.execute_script(js1)或
js2 = '$("#assignPackageDiv").find("[textboxname=\'remark\']").textbox("setValue","123")'
self.driver.execute_script(js2)  
但:js3 = '$("textarea").val("123")' 
driver.execute_script(js3)  也可赋值,但提交时会清空,等于白做
2.很多easyui消息框中,提交之后,确定之后再确定,第二个确定很难定位成功,涉及easyui提示框(alert)的关闭,常用的方法用两种:
<div class="messager-body panel-body panel-body-noborder window-body" title="" style="width: 298px;"><div class="messager-icon messager-
info"></div><div>数据保存成功</div><div style="clear:both;"></div><div class="messager-button"><a href="javascript.:void(0)" class="l-btn l-
btn-small" group="" id="" style="margin-left: 10px;"><span class="l-btn-left"><span class="l-btn-text">确定</span></span></a></div></div>
a.js = '$(".messager-body").window("close")'
browser.execute_script(js)    单独写可以使用
b.如果使用封装调用,也可以:
sure3 = 'xpath=>/html/body/div[80]/div[2]/div[4]/a[1]/span/span'
将其封装调用,也可以
 def click_sure2(self):
        try:
            self.click(self.sure2)
        except:
            pass
引申:关闭对话框 $('#dlg').dialog('close')
3.确定按钮 messager-button 有确定和取消按钮(接着上面的问题)
<div class="messager-button"><a href="javascript.:void(0)" class="l-btn l-btn-small" group="" id="" style="margin-left: 10px;"><span 
class="l-btn-left"><span class="l-btn-text">确定</span></span></a><a href="javascript.:void(0)" class="l-btn l-btn-small" group="" id="" 
style="margin-left: 10px;"><span class="l-btn-left"><span class="l-btn-text">取消</span></span></a></div>
以前是这样写的:# sure2 = 'xpath=>/html/body/div[78]/div[2]/div[4]/a[1]/span/span'    # 确定,但会有变化
def click_sure2(self):
    try:
        self.click(self.sure2)
    except:
        pass
后来是这样的:
js1= '$(".messager-button .l-btn-left:first").click()'
self.driver.execute_script(js1)
4..<a href='http:www.baidu.com'></a> 获取中间的连接www开头的,正则
(?<=http:)[^'>]+ (补充小知识)


TAG: js

 

评分:0

我来说两句

Open Toolbar