当前位置: 首页 > 科技观察

前端自动化脚本的几个常见问题你遇到过吗?

时间:2023-03-18 00:48:25 科技观察

公司有审计平台,下班时间没人审计,审计速度更着急,所以老板让我写一个可以自动审计的脚本,只针对下班时间。我开始了我的第一个自动化脚本。自动脚本并没有想象的那么难。作为前端,我们还是用我们最好的js。写一段需要执行的js代码,然后放到调试器中回车执行。这时候我们的自动脚本就可以正常运行了!例子:一个没写过自动脚本的前端,看看吧!写自动脚本的几个常见问题如下:问题一:获取到的元素是否为null?我们平时直接直接使用document.getElementById('btn')来稳定获取元素,但是今天在别人网站上reviewelements的时候,能找到id为btn的元素,但是在debugger中获取的一直是null.现象:直接获取document.getElementById('pass-btn')时返回null。在调试器中选择元素然后获取时,获取到的元素不为空。原因:检查页面结构是否包含iframe结构。如果元素包含在iframe导入的外部文件中,就会出现上述问题。解决方法:先找到iframe,找到当前对象中的DOMvariframe=window.document.getElementById('myframe')vartest=iframe.contentWindow.document.getElementById('pass-btn')console.log('-->',test)contentWindow是只读属性,返回指定iframe的window对象,所有浏览器都支持。至此,无需任何其他操作,即可稳定找到该元素。问题2:用js添加的点击事件无效?js中触发点击事件的方式有两种:click和onclick。现象:我在本地写了触发点击事件,本地演示中使用的onclick()可以正常触发,如:OK这时候如果你改为:varbtn=document.getElementById('btn')btn.addEventListener('click',()=>{console.log('execute')})btn.onclick()此时点击事件会无效。运行脚本时,不会安静执行。我们来看看click和onclick的区别?click是一个方法,onclick是一个事件。方法是写一个语句直接调用,也就是显示调用,可以触发onclick事件。事件一般以on开头,不需要程序调用。当相应的事件被触发时,事件触发函数将被调用。所以在写自动脚本的时候,使用clicktocall来模拟用户的点击操作。问题三:如何避免调试器断点?有经验的程序员会在项目的重要运行过程中加入调试器断点操作。它可以在不打开调试器的情况下正常运行。开启调试后,会出现一个断点,让我们无法在调试器中执行脚本。我们如何忽略断点?现象:添加调试器后,开启调试模式,程序到了断点就会停止,代码无法继续往下执行!解决方法:禁用所有断点,如图: