gpt4 book ai didi

variables - 带有 Safari 10.1 的 applescript getInputByClass2

转载 作者:行者123 更新时间:2023-12-03 17:38:33 25 4
gpt4 key购买 nike

自从上次系统更新以来,我过去每天运行以从 Safari 获取文本的 Applescripts 无法正常工作

它曾经只在 Safari 中工作,而不在 Safari Preview 中工作,我猜 Safari Preview 的系统现在被带到了 safari/

tell application "Safari"

set DinfoGrab to do JavaScript "
document.getElementsByClassName(' field type-string field-Dinfo ')[0].innerHTML;" in tab 3 of window 1
end tell

出现此错误:

Safari got an error: Can’t make " document.getElementsByClassName(' field type-string field-Dinfo ')[0].innerHTML;" into type text.



我该如何解决?谢谢。

更新 :

这是与 Chrome 完美配合的东西:
tell application "Google Chrome"
tell tab 3 of window 1 to set r to execute javascript "document.getElementsByClassName('field type-string field-Dinfo')[0].innerHTML;"
end tell

最佳答案

没有看到完整的代码,我无法确定发生了什么。但从你的函数名称来看——getInputByClass2 -- 我假设您正在尝试获取 HTML 的值 <input>领域。如果这是真的,你应该使用 outPut.push(arr[i].value)而不是 outPut.push(arr[i].innerHTML)
至于第二位代码,如果 document.getElementsByClassName(' field type-string field-Dinfo ')[0] 的值,您的 JavaScript 没有任何错误处理。一片空白。

var els = document.getElementsByClassName(' field type-string field-Dinfo ');
//set to value of [0].innerHTML if [0] exists, else empty string
var html = els.length ? els[0].innerHTML : "";
//return value to AppleScript
html;

更新(对更新问题的回应)

在脚本编辑器中针对此 StackOverflow 页面运行以下脚本将返回正确的值(假设您设置了正确的窗口/选项卡编号)。如果此 StackOverflow 页面顶部的搜索字段为空,您将得到一个空字符串。如果您输入一个术语(但不提交)然后运行 ​​AppleScript,您将获得该字段的值。
tell application "Safari"
set DinfoGrab to do JavaScript "
document.getElementsByClassName('js-search-field')[0].value;" in tab 1 of window 1
end tell

脚本中唯一的变化是窗口/选项卡编号、类名(已更改以匹配 StackOverflow 页面),我使用了 value而不是 innerHTML .

我已经在最新版本的 Safari (10.0.3) 中进行了测试;如果这在您的 Safari 版本中不起作用,请确保您指向正确的类名。如果这个脚本对你有用,那么问题可能是由于你试图搜索的页面上的某些东西,可能与 <input> 的类型有关。您正在获取的字段或不正确的类名。也许 Safari 的更新导致页面呈现不同,这间接影响了您的代码。

关于variables - 带有 Safari 10.1 的 applescript getInputByClass2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42173239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com