需要帮助,单击没有任何标识符的`<a href="">`元素

时间:2019-10-18 18:05:24

标签: javascript html greasemonkey

我正在尝试编写一个脚本,对某个帖子发表评论,然后单击“收藏此帖子”按钮,但是此按钮没有分配任何ID,我将如何单击该按钮?

我尝试了JQuery,但是没有用。

我正在尝试在FurAffinity上使用它来自动单击#include <vector> #include <iostream> #define rep(i,n) for (int i = 1; i <= n; i++) using namespace std; typedef long long int ll; typedef vector<vector<ll> > matrix; const ll mod = 1000000000; matrix mul(matrix A,matrix B,int k){ matrix c(k+1,vector<ll>(k+1)); for(int i=1;i<=k;i++){ for(int j=1;j<=k;j++){ for(int l=1;l<=k;l++){ c[i][j]=(c[i][j]+(A[i][l]*B[l][j]))%mod; } } } return c; } matrix pow(matrix A,int p,int k){ if(p==1) return A; if(p%2){ return mul(A,pow(A,p-1,k),k); } matrix X=pow(A, p/2,k); return mul(X,X,k); } int fib(int N,vector<ll>b1,vector<ll>c1,int k){ vector<ll>bb(k+1); rep(i,k){ bb[i]=b1[i]; } matrix T(k+1,vector<ll>(k+1)); for(int y=1;y<=k;y++){ for(int u=1;u<=k;u++){ if(y+1==u) T[y][u]=1; } } rep(i,k){ int y=c1.back(); c1.pop_back(); T[k][i]=y; } if(N<k){ cout<<b1[N]<<endl; return 0; } T=pow(T,N-1,k); ll res=0; for(int i=1;i<=k;i++) res=(res+T[1][i]*bb[i])%mod; cout<<res<<endl; } int main(){ int cas,k,b,c,n; cin>>cas; rep(i,cas) { cin>>k; vector<ll>b1(k+1); vector<ll>c2(k+1); rep(j,k){ cin>>b; b1[j]=b; } rep(o,k){ cin>>c; c2[o]=c; } cin>>n; fib(n,b1,c2,k); } } 元素,而没有任何种类的标识符。当我检查与开发元素。 Google上的选项表明该名称存在,只是将其设置为空白,所以我无法使用JQuery进行选择。

网站代码的片段示例。我想使用一个单独的按钮,通过使用Tampermonkey,单击出现在页面其他位置的“ +添加到收藏夹”文本。

我不知道如何仅使用元素的InnerHTML来查找元素。 <a>标签没有名称,ID或类,里面只有一个href和一些文本。

<a>

2 个答案:

答案 0 :(得分:0)

假设您打算在stackoverflow上使用它,则“收藏此帖子”按钮具有可唯一标识它的类。

document.querySelector('.js-favorite-btn').click();

如果您是指其他具有类似按钮的网站,请同样检查是否可以查询选择的唯一类,名称甚至属性(例如自定义data-x属性)。

最后,作为最后的选择,您可以使用

之类的东西在查询选择器中遍历dom。

document.querySelector('#mainbar > .question div.post-layout button').click();

mdn querySelectorquerySelectorAll

答案 1 :(得分:0)

根据您的示例代码,您想要找到此元素:

<a href="/fav/33151503/?key=37dfe6a83f38f48790a6551921ddb13850e2c6a0">+Add to Favorites</a>

假设这样的链接只有1个,并且它的/fav/中始终有href

document.querySelector('a[href*="/fav/"]').click();

如有必要,可以对上面的内容进行进一步的微调,但这应该可以使您有所了解。