<!DOCTYPE html>
<html>
<head>
<style>
p {
    font-size: 20px;
    width: 100px;
    text-align: center;
    display: inline-block;
}
</style>
</head>
<body>
<p contenteditable>foobar</p>
<div>Has "Translate" item? <span id="has-translate"></span></div>
<div>Has "Look Up" item? <span id="has-look-up"></span></div>
<div>Has "Search the Web" item? <span id="has-search"></span></div>
<script>
function hasMenuItemContainingTitle(items, titleToQuery)
{
    for (let item of items) {
        let title = item.title || item;
        if (title.includes?.(titleToQuery))
            return true;
    }
    return false;
}

let paragraph = document.querySelector("p");
let boundingRect = paragraph.getBoundingClientRect();

eventSender.mouseMoveTo(boundingRect.left + boundingRect.width / 2, boundingRect.top + boundingRect.height / 2);
items = eventSender.contextClick();

document.getElementById("has-look-up").textContent = hasMenuItemContainingTitle(items, "Look Up");
document.getElementById("has-translate").textContent = hasMenuItemContainingTitle(items, "Translate");
document.getElementById("has-search").textContent = hasMenuItemContainingTitle(items, "Search the Web");

paragraph.remove();
</script>
</body>
</html>