简体   繁体   English

使用 AppleScript 单击 Safari 网页按钮

[英]Click on safari web page button using AppleScript

I'm trying to figure out how to click on the button in a webpage.我试图弄清楚如何点击网页中的按钮。 For example click on the "I'm Feeling Lucky" button in google web page.例如,点击谷歌网页中的“手气不错”按钮。

This is what I have tried:这是我尝试过的:

tell application "Safari"
    make new document with properties {URL:"https://www.google.com/"}

    do JavaScript "eval(document.getElementById('I'm Feeling Lucky').parentNode.href.substring(11))" in document 1

    delay 1

end tell

But it doesn't work.但它不起作用。 Any of you knows how can I click on the button using applescript?你们中的任何人都知道如何使用applescript单击按钮吗?

I'll really appreciate your help我会非常感谢你的帮助

Couple things: Best practice in the safari tell block is to also tell document 1. Also, the ID for that button on Google is wrong.几件事:safari tell 块中的最佳实践是也告诉文档 1。此外,Google 上该按钮的 ID 是错误的。 Here's the code from the page:这是页面中的代码:

<button class="gbqfba" aria-label="Google Search" id="gbqfba" name="btnK"><span id="gbqfsa">Google Search</span></button>
<button class="gbqfba" aria-label="I'm Feeling Lucky" onclick="google.x(this,function() {google.ifl &amp;&amp; google.ifl.o();})" id="gbqfbb" name="btnI"><span id="gbqfsb">I'm Feeling Lucky</span></button>

where you can see the ID's for both buttons are 'gbqfba' and 'gbqfbb'.您可以在其中看到两个按钮的 ID 是“gbqfba”和“gbqfbb”。 However, clicking them does nothing if nothing is typed in the search box, which then alters the page, and with auto-complete that I have active, the button never needs click.但是,如果在搜索框中没有输入任何内容,则单击它们不会执行任何操作,然后会更改页面,并且通过我激活的自动完成功能,该按钮永远不需要单击。 Here's some code for the yahoo.com page which is not dynamic.这是 yahoo.com 页面的一些代码,它不是动态的。 The search button ID for the search button there is: id="search-submit" …搜索按钮的搜索按钮 ID 为:id="search-submit" ...

tell application "Safari"
    activate
    make new document with properties {URL:"https://www.yahoo.com/"}
    delay 2

    tell application "System Events"
        keystroke "stackoverflow"
    end tell
    delay 0.3
    tell document 1
        do JavaScript "document.getElementById('search-submit').click();"
    end tell
end tell

Info on doing the same in Chrome is here: https://stackoverflow.com/a/24644152/3097556在 Chrome 中执行相同操作的信息在这里: https ://stackoverflow.com/a/24644152/3097556

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM