Su. 发表于 2022-6-21 17:06:55

王一之 发表于 2022-6-21 10:27
这个代码能优化的,可以吧clearInterval(a)放e.click后面

!(data/attachment/forum/202206/21/170547mbb5zm5wxwhpwhc3.png)
试过了,不行,它在页面加载出来之后,密码是输进去了,但是却没有点击

Su. 发表于 2022-6-21 17:51:06

Su. 发表于 2022-6-21 17:06
!(data/attachment/forum/202206/21/170547mbb5zm5wxwhpwhc3.png)
试过了,不行,它在页面加载出来之 ...

这玩意跟之前是一样的,输入之前就点击了,我把整个settimeout都放进去之后ok了

shinonome 发表于 2022-6-21 23:05:52

Su. 发表于 2022-6-21 17:51
这玩意跟之前是一样的,输入之前就点击了,我把整个settimeout都放进去之后ok了 ...

```javascript
(function () {
    'use strict';
    var password = "123"
    var id = setInterval(() => {
      var a = document.querySelector('#userpassword_ctrl')
      var b = document.querySelector('#loginbtn')
      if (a) {
            a.value = password;
            var c = new Event('input');
            if(a.dispatchEvent(c)){
            b.click()
            clearInterval(id)
            }
      }
      console.log("1")
    }, 100)
    // Your code here...
})();
```
这样应该就不会先点击了吧,可是点击还是没反应,暂停的话也可以看到密码确实是输入进去了,很奇怪

shinonome 发表于 2022-6-22 07:54:45

```javescript
(function () {
    'use strict';
    var password = "123"
    var id = setInterval(() => {
      var a = document.querySelector('#userpassword_ctrl')
      if (a) {
            a.value = password;
            var c = new Event('input');
            if (a.dispatchEvent(c)) {
                var b = document.querySelector('#loginbtn')
                if (b) {
                  if (b.click()) {
                        clearInterval(id)
                  }

                }

            }
      }
      console.log("1")
    }, 100)
    // Your code here...
})();
```
修改了这个就行了
```javescript
if (b.click()) {
   clearInterval(id)
}
```

Su. 发表于 2022-6-22 08:19:24

shinonome 发表于 2022-6-22 07:54
```javescript
(function () {
    'use strict';


虽然确实可以点击了,但是他还在一直循环

shinonome 发表于 2022-6-22 09:19:00

Su. 发表于 2022-6-22 08:19
虽然确实可以点击了,但是他还在一直循环

啊这,确实,难受

shinonome 发表于 2022-6-22 09:22:35

Su. 发表于 2022-6-22 08:19
虽然确实可以点击了,但是他还在一直循环

看了一下,四五次定时后才click

Su. 发表于 2022-6-22 09:26:41

shinonome 发表于 2022-6-22 09:22
看了一下,四五次定时后才click

界面大概4、5百毫秒后加载完成

cxxjackie 发表于 2022-6-22 10:49:03

应该是动态加载元素的问题,这种定时器的写法性能很糟糕的,可以看看论坛里关于MutationObserver的文章。
页: 1 [2]
查看完整版本: 求一个华为路由器自动登录的脚本