鱼C论坛

 找回密码
 立即注册
查看: 1719|回复: 8

[已解决]jQuery做脚本登录后操作的问题,求助啊

[复制链接]
发表于 2023-2-13 16:49:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wiselin 于 2023-2-13 16:49 编辑

需求就是登录fishc.com.cn后点击自己的用户进入我的空间,目前写的代码可登录成功,但成功后该如何写才能自动点击用户名那里呢?用的是油猴脚本
  1. // ==UserScript==
  2. // @name         我的专属脚本
  3. // @namespace    https://fishc.com.cn/
  4. // @version      0.1
  5. // @description  自动化操作
  6. // @match        https://fishc.com.cn/
  7. // @require      https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.5.1.min.js
  8. // @grant        none
  9. // @run-at       document-start
  10. // ==/UserScript==
  11. $(function(){
  12.     $('#ls_username').val('我的用户名');
  13.     $('#ls_password').val('我的密码');
  14.     $('button[tabindex="904"]').click();
  15. })
复制代码
最佳答案
2023-2-13 19:50:32
本帖最后由 isdkz 于 2023-2-13 21:11 编辑
wiselin 发表于 2023-2-13 18:03
代码一句句在控制台执行没问题,但放到脚本就没效果,好奇怪,另外想问下能用jQuery写吗?


我去,才发现把调用给漏掉了。jquery 获取不到元素,不知道为什么,我还没找出原因

  1. // ==UserScript==
  2. // @name         我的专属脚本
  3. // @namespace    https://fishc.com.cn/
  4. // @version      0.1
  5. // @description  自动化操作
  6. // @match        https://fishc.com.cn/*
  7. // @require      https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.5.1.min.js
  8. // @grant        none
  9. // ==/UserScript==
  10. (function(){
  11.     if(document.querySelector('#um > p:nth-child(2) > strong > a') == null){
  12.         document.querySelector('#ls_username').value = '账号';
  13.         document.querySelector('#ls_password').value = '密码';
  14.         document.querySelector('#lsform > div > div > table > tbody > tr:nth-child(2) > td.fastlg_l > button').click();
  15.         document.querySelector('#um > p:nth-child(2) > strong > a').click();
  16.     }

  17. })();
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-2-13 17:07:06 | 显示全部楼层
不会写油猴脚本
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-13 17:31:41 | 显示全部楼层
  1. // ==UserScript==
  2. // @name         我的专属脚本
  3. // @namespace    https://fishc.com.cn/
  4. // @version      0.1
  5. // @description  自动化操作
  6. // @match        https://fishc.com.cn/
  7. // @require      https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.5.1.min.js
  8. // @grant        none
  9. // @run-at       document-start
  10. // ==/UserScript==
  11. (function(){
  12.     document.querySelector('#ls_username').value = '我的用户名';
  13.     document.querySelector('#ls_password').value = '我的密码';
  14.     document.querySelector('#lsform > div > div > table > tbody > tr:nth-child(2) > td.fastlg_l > button').click();
  15.     document.querySelector('#um > p:nth-child(2) > strong > a').click();
  16. })
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-13 18:03:07 | 显示全部楼层

代码一句句在控制台执行没问题,但放到脚本就没效果,好奇怪,另外想问下能用jQuery写吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-13 19:23:44 | 显示全部楼层
wiselin 发表于 2023-2-13 18:03
代码一句句在控制台执行没问题,但放到脚本就没效果,好奇怪,另外想问下能用jQuery写吗?

说说你的全部需求   以及想要实现的目标
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-13 19:50:32 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2023-2-13 21:11 编辑
wiselin 发表于 2023-2-13 18:03
代码一句句在控制台执行没问题,但放到脚本就没效果,好奇怪,另外想问下能用jQuery写吗?


我去,才发现把调用给漏掉了。jquery 获取不到元素,不知道为什么,我还没找出原因

  1. // ==UserScript==
  2. // @name         我的专属脚本
  3. // @namespace    https://fishc.com.cn/
  4. // @version      0.1
  5. // @description  自动化操作
  6. // @match        https://fishc.com.cn/*
  7. // @require      https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.5.1.min.js
  8. // @grant        none
  9. // ==/UserScript==
  10. (function(){
  11.     if(document.querySelector('#um > p:nth-child(2) > strong > a') == null){
  12.         document.querySelector('#ls_username').value = '账号';
  13.         document.querySelector('#ls_password').value = '密码';
  14.         document.querySelector('#lsform > div > div > table > tbody > tr:nth-child(2) > td.fastlg_l > button').click();
  15.         document.querySelector('#um > p:nth-child(2) > strong > a').click();
  16.     }

  17. })();
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-13 20:48:02 | 显示全部楼层
wp231957 发表于 2023-2-13 19:23
说说你的全部需求   以及想要实现的目标

我的需求很简单哈,就是用jQuery写一个自动化登录后进行各种操作,比如点击,上传之类行为的程序,现在碰到的问题就是jQuery没有selenium那种等待找到某个元素的功能,登录成功后后面写的动作都不会执行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-13 20:51:54 | 显示全部楼层
isdkz 发表于 2023-2-13 19:50
我去,才发现把调用给漏掉了。jquery 获取不到元素,不知道为什么,我还没找出原因

程序测试了一下,自动登录没问题,但是登录后点击的操作并没有执行,怎样才能做到像selenium那种等待到某元素然后点击的功能呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-13 21:09:39 | 显示全部楼层
本帖最后由 isdkz 于 2023-2-13 21:10 编辑
wiselin 发表于 2023-2-13 20:51
程序测试了一下,自动登录没问题,但是登录后点击的操作并没有执行,怎样才能做到像selenium那种等待到某 ...


我也很纳闷,js 代码怎么不按顺序执行,

这个代码可以进入个人主页,不过就进不了其它页面,去其它页面也会跳回个人主页,你先看看,我再研究研究
  1. // ==UserScript==
  2. // @name         我的专属脚本
  3. // @namespace    https://fishc.com.cn/
  4. // @version      0.1
  5. // @description  自动化操作
  6. // @match        https://fishc.com.cn/*
  7. // @grant        none
  8. // ==/UserScript==

  9. function main(){
  10.     if(document.querySelector('#um > p:nth-child(2) > strong > a') == null){
  11.         document.querySelector('#ls_username').value = '账号';
  12.         document.querySelector('#ls_password').value = '密码';
  13.         document.querySelector('#lsform > div > div > table > tbody > tr:nth-child(2) > td.fastlg_l > button').click();
  14.     } else if(!window.location.href.match(/https:\/\/fishc.com.cn\/space-uid-\w*\.html/ )){
  15.         document.querySelector('#um > p:nth-child(2) > strong > a').click();
  16.     }

  17. };

  18. main();
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-4 21:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表