使用 AppleScript 单击 Safari 网页按钮 [英] Click on safari web page button using AppleScript

查看:33
本文介绍了使用 AppleScript 单击 Safari 网页按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想弄清楚如何点击网页中的按钮.例如,点击谷歌网页中的手气不错"按钮.

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.

这是我尝试过的:

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

但它不起作用.你们中有人知道如何使用applescript单击按钮吗?

But it doesn't work. Any of you knows how can I click on the button using applescript?

非常感谢您的帮助

推荐答案

两件事情:在 safari tell 块中的最佳实践是也告诉文档 1.此外,Google 上那个按钮的 ID 是错误的.这是页面中的代码:

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. 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>

您可以在其中看到两个按钮的 ID 是gbqfba"和gbqfbb".但是,如果在搜索框中未输入任何内容,则单击它们没有任何作用,然后更改页面,并且使用我已激活的自动完成功能,该按钮永远不需要单击.这是 yahoo.com 页面的一些非动态代码.搜索按钮的搜索按钮 ID 为:id="search-submit" ...

where you can see the ID's for both buttons are 'gbqfba' and '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. The search button ID for the search button there is: 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

有关在 Chrome 中执行相同操作的信息如下:https://stackoverflow.com/a/24644152/3097556

Info on doing the same in Chrome is here: https://stackoverflow.com/a/24644152/3097556

这篇关于使用 AppleScript 单击 Safari 网页按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆