gpt4 book ai didi

javascript - 自动点击包含特定文本的按钮的方法?

转载 作者:行者123 更新时间:2023-11-28 17:11:25 25 4
gpt4 key购买 nike

我一直在焦躁地寻找一种方法来自动选择包含特定单词的调查表单按钮。我在 Google Chrome 中使用 Tampermonkey。在本例中,我想自动选择其中包含“男性”一词的按钮。

这是我正在讨论的按钮类型的示例(包括 CSS/HTML):

enter image description here

因此,对于“您的性别是什么?”这个问题,我想自动选择“男性”。我已经浏览了所有我能找到的可能有帮助的 stackoverflow 问题,但没有结果。我选择了基于标签的方法并使用“textContent”希望能够识别表单问题中的文本。

这是我当前正在使用的代码(来自 How can I auto-select a radio button with Greasemonkey? ):

// ==UserScript==
// @name Button Text Form Filler
// @include https://tasupport.co1.qualtrics.com/jfe/form/SV_0qez6NHJGoCAmMt
// @version 1.0
// @description Demonstration script to change form values
// ==/UserScript==

var labels = document.getElementsByTagName('label');
for (var i = 0; i < labels.length; ++i) {
if (labels[i].textContent == "Male") {
labels[i].click();
}
}

不幸的是,代码不起作用,并且在页面加载时未选择“男性”按钮。可以在以下网站的第二页进行测试:https://tasupport.co1.qualtrics.com/jfe/form/SV_0qez6NHJGoCAmMt (上面的截图来自哪里)。

我还使用 jQuery ( How do I automatically click this button with tampermonkey? ) 尝试了以下操作:

// ==UserScript==
// @name jQuery Button Test
// @version 0.1
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
// @include https://tasupport.co1.qualtrics.com/jfe/form/SV_0qez6NHJGoCAmMt
// ==/UserScript==

$(document).ready(function() {
$("button:contains('Male')").click();
});

再说一次,什么都没有。

在 stackoverflow 上有一些与我类似的问题,但似乎没有一个解决方案在这里起作用,或者我正在使用的代码可能已经过时了。我将不胜感激任何和所有的帮助。提前致谢。

最佳答案

我已经在开发控制台中尝试了以下操作并且它有效。希望对您有帮助

Array.from(document.querySelectorAll('label > span')).find(e => e.textContent === 'Male').parentElement.click()

该标签有一个可以使用的 ID。使用这些 ID 时,无需在文本内容中搜索 Male。

document.getElementById('QID2-1-label').click()
<小时/>

编辑

对于 tampermonkey,您需要一些设置来处理 xhr 请求。您需要 jQuery、waitForKeyElements.js 并且 @match 需要您的 xhr url。

// ==UserScript==
// @name New Userscript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You

// @match https://tasupport.co1.qualtrics.com/jfe/form/SV_0qez6NHJGoCAmMt
// @match https://tasupport.co1.qualtrics.com/jfe2/form/SV_0qez6NHJGoCAmMt/next?rand=775440350&tid=1&t=1547858208474
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==

const fire = () => Array.from(document.querySelectorAll('label > span')).find(e => e.textContent === 'Male').parentElement.click();

// another option
// const fire = () => document.getElementById('QID2-1-label').click();

waitForKeyElements (
"#QID2-1-label",
fire
);

关于javascript - 自动点击包含特定文本的按钮的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54252720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com