【问题标题】:Need to click a bid button with Grease monkey script需要使用 Grease Monkey 脚本点击出价按钮
【发布时间】:2011-06-04 19:16:44
【问题描述】:

我有点卡住了。我正在尝试创建一个 Grease Monkey 脚本,该脚本将自动单击拍卖网站上出现的弹出窗口。我有 Xpat,但我对 GM 的经验太丰富了,无法让它工作。

这是我从fire finder 得到的萤火虫元素检查线:

<input type="submit" style="width: 160px;" class="simplemodal-close" id="ctl00_mainContentPlaceholder_Button3" onclick="closePopup(); return false;" value="Back To Auctions" name="ctl00$mainContentPlaceholder$Button3">

而firpath,xpath行是:

.//*[@id='ctl00_mainContentPlaceholder_Button3']

完整 xpath 的 xpather 行:

/html/body/form[@id='aspnetForm']/div[@id='simplemodal-container']/div/div[@id='basic-modal-content']/div[@id='modal_winningBanner']/div/div[2]/div[2]/input[@id='ctl00_mainContentPlaceholder_Button3']

所以我在我的 gm 脚本中尝试让它点击按钮如下:

// @include *
// @version 0.1
// @description Automatically click // ==/UserScript==

click_popupBtn1 = function() {

var joinBtn=document.evaluate('//*[@id, "ctl00_mainContentPlaceholder_Button3"]'
    ,document,
      null,
     XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
     null).singleNodeValue.click();
  alert(joinBtn);
       if(!joinBtn) return false;
          joinBtn.click();
      return true;
}


click_popupBtn1 ();

我认为我的语法有问题,但不知道如何调试 GM。几年前我只使用过 turbo pascal,但想用 java 和 GM 完成一些简单的事情。

我们将不胜感激。

谢谢 路德维希

【问题讨论】:

  • 好问题,+1。请参阅我的回答,并解释问题的原因及其更正。

标签: xpath greasemonkey


【解决方案1】:

嗯,我不懂你用的很多词或这种复杂的语法。

但类似:

document.getElementById("ctl00_mainContentPlaceholder_Button3").click();

应该可以。

【讨论】:

  • @ jonathon 谢谢,没有想到 getelemntbyid 语法。我在脚本中使用了它,它起作用了。 clickpopBtn1 = function() { var popBtn=document.getElementById("ctl00_mainContentPlaceholder_Button3"); popBtn.click(1);
  • @Ludwig,如果这个答案对你有用,请mark it as accepted
【解决方案2】:
var joinBtn=document.evaluate('//*[@id, "ctl00_mainContentPlaceholder_Button3"]'
                              ,document,      
                               null,     
                               XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
                              null).singleNodeValue.click();

上面的第一个参数不是语法上合法的 XPath 表达式。

应该是

//*[@id = "ctl00_mainContentPlaceholder_Button3"]

【讨论】:

  • 谢谢dimtre,我试过了,但由于某种原因,我不能让它点击这个表达式的按钮。但是使用 document.getElementById 表达式我确实让它工作。随着时间的流逝,我想我会发现自己的错误,然后为此踢自己:P
  • 编辑了标题,这适用于bidbuttoms,但弹出窗口仍然存在问题。
猜你喜欢
  • 1970-01-01
  • 2018-05-15
  • 2019-04-01
  • 1970-01-01
  • 2019-02-14
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多