Вы на самом деле не используете функцию isVisible
.
Вы можете проверить, что Brave возвращает значения из execute javascript
, используя более простой скрипт:
tell application "Brave Browser"
tell active tab of front window
execute javascript "1"
end tell
end tell
Или вы может следовать логике c в части JavaScript скрипта, запустив его прямо на тестовой странице в браузере; если вы сделаете последнее, вы увидите, что
- назначаете элемент для
var ele
. - , создаете функцию
isVisible
, которая принимает один аргумент. - но никогда не вызывать функцию
isVisible
.
Это можно исправить, вызвав функцию или удалив функцию, в зависимости от ваших потребностей.
Вызовите функцию ; обратите внимание, что я заменил getElementsByClassName на getElementsByTagName, чтобы было проще тестировать его на произвольных веб-страницах:
tell application "Brave Browser"
tell active tab of front window
execute javascript "
var firstParagraph = document.getElementsByTagName('p')[0];
isVisible(firstParagraph)
function isVisible (elementToCheck) {
const { top, bottom } = elementToCheck.getBoundingClientRect();
const vHeight = (window.innerHeight || document.documentElement.clientHeight);
return (
(top > 0 || bottom > 0) &&
top < vHeight
);
}
"
end tell
end tell
Или, например, удалить функцию:
tell application "Brave Browser"
tell active tab of front window
execute javascript "
var firstParagraph = document.getElementsByTagName('p')[0];
var firstParagraphRect = firstParagraph.getBoundingClientRect();
var top = firstParagraphRect.top
var vHeight = window.innerHeight || document.documentElement.clientHeight;
(firstParagraphRect.top > 0 || firstParagraphRect.bottom > 0) && firstParagraphRect.top < vHeight
"
end tell
end tell
In В каждом случае вы можете заменить имя тега «p» на тег, который не виден, например, «title», чтобы увидеть, что он также правильно возвращает false.