【问题标题】:how do we reset the size of safari devtools with applescript for ios simulators?我们如何使用适用于 ios 模拟器的 applescript 重置 safari devtools 的大小?
【发布时间】:2021-11-25 14:40:43
【问题描述】:

我们如何使用苹果脚本为模拟器重置 safari 开发工具的大小?网址可以是随机的,也可以是任何东西(任何网站)。从截图中可以看出,我们在 safari devtools for Simulators 中有一个设置选项,我们可以在其中使用“zoom”选项设置 devtools 的大小。我希望它设置为 100%,applescript 做同样的工作。

我尝试的这个脚本如下所示正在尝试激活 safari,然后转到模拟器设备并单击 url。然后我被困在如何单击 safari devtools 上的设置选项卡上,最后在缩放选项上使用 applescript 调整 devtools 的大小

图片如下:

Please see this image

tell application "System Events"
tell application process "Safari"
    if not (exists menu bar item "Develop" of menu bar 1) then return
    tell menu 1 of menu bar item "Develop" of menu bar 1
        set simulatorMenuName to the name of (menu items whose name starts with "Simulator") as string
        if simulatorMenuName is equal to "" then return
        set simulatorMenuNameMenuItems to the name of menu items of menu 1 of menu item simulatorMenuName
        if item 1 of simulatorMenuNameMenuItems is not "Safari" then return
        repeat with i from 1 to count simulatorMenuNameMenuItems
            if item i of simulatorMenuNameMenuItems is equal to missing value then
                set menuItemNumber to i - 1
                exit repeat
            end if
        end repeat
        tell menu 1 of menu item simulatorMenuName to click menu item menuItemNumber
    end tell
end tell

说完

【问题讨论】:

  • 尝试过什么? Stack Overflow 不是代码编写服务!屏幕截图中的 URL 是否任何人都可以在没有登录的情况下访问?如果是,请以书面形式提供 URL,这样我们就不必手动输入。看看:How do I ask a good question? & How to create a Minimal, Reproducible Example
  • @user3439894 我仍在探索这方面,并没有太多想法。网址是我们在不需要登录的地方提供的。
  • RE:“网址是我们在不需要登录的地方提供的东西。” -- 那么请以书面形式提供URL,这样我们就不必手动输入了。
  • @user3439894 网址可以是随机的,也可以是任何东西(任何网站)。我面临一个问题,有时在加载任何 url 时 devtools 大小会从正常值增加,有时它很好。所以,我在想一个applescript,它总是在会话关闭时将devtools的大小调整为正常值。
  • @user3439894 给我一点时间,让我确认网址是否始终相同。

标签: safari applescript ios-simulator devtools


【解决方案1】:

我目前无法在与您相同的环境中进行测试,但是,example AppleScript code,如下所示, 在 ma​​cOS CatalinaSafari 版本 14.0.3 (15610.4.3.1.6, 15610) 下的 Script Editor 中使用 Language 进行了测试System Preferences 中的 & Region 设置设置为 English (US) - Primary 并且为我工作没有问题1

  • 1 假设 系统偏好设置 > 安全和隐私 > 隐私中的必要和适当的设置已设置/根据需要解决。

示例 AppleScript 代码

tell application "Safari" to activate
delay 0.2
tell application "System Events"
    tell front window of application process "Safari"
        
        if (value of pop up button 1 of group 19 of ¬
            group 4 of UI element 1 of scroll area 1 of ¬
            group 1 of group 1) is not "100%" then
            
            click ¬
                pop up button 1 of group 19 of ¬
                group 4 of UI element 1 of ¬
                scroll area 1 of group 1 of group 1
            
            delay 0.1
            
            click ¬
                menu item "100%" of menu 1 of group 1
            
        end if
        
    end tell
end tell

注意事项:

示例 AppleScript 代码假设Safari前窗是已经加载到目标页面和/或Web Inspector 选项卡/窗口

Web Inspector 的目标 tab 似乎不能通过 AppleScript 编写 JavaScript 脚本,但是,它可以使用 UI 脚本 编写脚本。请注意,UI 脚本充其量是 kludgy,并且由于 分层 UI 元素结构的变化而容易失败OS 和/或应用程序 正在编写脚本。可能需要对 示例 AppleScript 代码 进行更改以供您在 ma​​cOS Big Sur 或任何ma​​cOS 和/或 Safari 的其他版本,而不是经过测试和工作的版本。

您可以使用Accessibility Inspector检查当前版本ma​​cOS下的分层UI元素结构Safari 您正在使用。您还可以使用 AppleScript 来查询各种 分层 UI 元素 结构 以确定哪个适合 pop up button 按钮 .




注意:示例 AppleScript 代码就是这样,没有任何包含的错误处理 em> 不包含任何适当的附加错误处理。用户有责任根据需要或需要添加任何错误处理。查看AppleScript Language Guide 中的try statementerror statement。另请参阅Working with Errors。此外,在适当的情况下,可能需要在事件之间使用delay 命令,例如delay 0.5延迟设置得当。

【讨论】:

  • 我们可以做一些我在描述中分享的事情吗?我无法弄清楚如何转到模拟器的缩放选项并设置为 100%。
  • 在模拟器打开的情况下在脚本编辑器上运行时给出的代码出现此错误 - 系统事件出现错误:无法获取应用程序进程“Safari”的窗口 1。无效索引。
  • @Ritesh Kumar,我建议您完整地重新阅读我的答案。它在所表达的条件下按所述工作,并就如何使其适应不同版本的 macOSSafari 提供了一些指导,因为我无法在相同的条件下进行测试你现在的环境。您只需要进行研究并学习如何调整 example AppleScript code 以供自己使用或等到其他人提供其他代码.
  • @Ritesh Kumar,在 macOS Big Sur 11.6 和 Safari 版本 14.1.2 (16611.3.10.1.6) 下测试 示例 AppleScript code 在我的答案中也适用,正如 macOS Catalina 所述。但是请注意,当打开 Web Inspector windowGeneral tab 时,没有任何其他显示在您首先链接到您的问题的原始屏幕截图。同样,Notes: section 下的最后一段仍然适用。这是 example AppleScript code 工作的 window 的屏幕截图:i.imgur.com/vS9MtYB.png
  • 你能检查一下这个截图吗?imagizer.imageshack.com/img922/5569/7Hqt8y.png我已经打开了模拟器和脚本编辑器,并使用了你发送的相同代码。
猜你喜欢
  • 2013-02-18
  • 2015-01-06
  • 2012-09-16
  • 2018-08-06
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-23
相关资源
最近更新 更多