【发布时间】:2018-12-15 09:55:01
【问题描述】:
我正在尝试使用纯 JS 或 Jquery 自动提交对我的 Steemit 帖子的回复。
我使用了下面的 javascript 代码,但该按钮仍处于禁用状态,因此不允许发布回复/评论。
如何正确触发 textarea 上的 keydown / keypress / keyup 事件,以模拟用户“经典”交互以发送回复?
谢谢
目标示例:https://steemit.com/usa/@gaottantacinque/happy-4th-of-july
在开发工具控制台中:
function nap (durationMs) {
new Promise(resolve => setTimeout(() => resolve(), durationMs))
}
async function replyToPost() {
var replyBtn = document.getElementsByClassName("PostFull__reply")[0]
.getElementsByTagName('a')[0];
replyBtn.click();
await nap(1000);
var textarea = document.getElementsByTagName('textarea')[0];
const msg = 'My programmatically generated comment goes here';
textarea.focus();
textarea.click();
textarea.value = msg; // textarea.innerHTML = msg; textarea.innerText = msg;
await nap(100);
var postReplyBtn = document.querySelectorAll('[type=submit]')[1];
// postReplyBtn.disabled = false;
postReplyBtn.click();
}
replyToPost();
注意事项: 此代码填充文本区域,但按钮仍处于禁用状态。只需手动单击文本区域并键入任何启用按钮的内容即可。
此外,以编程方式插入的 textarea 值在单击背景后会消失,但在正常输入时不会消失。
【问题讨论】:
-
您可能应该确保阅读该网站的服务条款,以确保您可以使用机器人;他们以编程方式难以做到这一点可能是有原因的......
-
我会仔细检查,但我认为这没有任何问题。有大量的机器人,社区鼓励使用它们..
-
在这种情况下,以前曾询问过以编程方式触发事件:Triggering a keydown event programmatically in vanilla Javascript 看看这是否适合您。
-
Steem 机器人正常:steemit.com/steem/@earthnation/…
-
@HereticMonkey 找到了解决方案。这是 ReactJs 中的一个错误。
标签: javascript html reactjs automation steemit