在Google服务IFRAME中单击“模拟按钮”的书签



目标是将键盘快捷键添加到Google的Google Translator工具包中。那里的大多数功能都有键盘快捷键,但是这两个功能没有。

第一个功能称为合并。执行此书签时,它会正确发射:

javascript:document.evaluate("//div[(@id='gtc-merge-arent')]/div[(@class='modal-dialog
gtc-merge')]/div[(@class='modal-dialog-buttons')]/button[(text()='OK')]",    document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,
null).singleNodeValue.click();

适用于所有功能的应用更棘手。通常,您必须单击三次才能执行此功能:

#1 单击使可见的重复对话框的按钮并设置参数:用来替换的按钮。
#2 单击"应用于所有",然后触发整个
的实际替换 #3 隐藏对话框元素。

我不想弄乱Google的内部代码,因此正常单击鼠标是最好的。

#2和#3轻松射击:相同的书签,暂停:

javascript:(function(pause) { 
document.evaluate("//div[(@id='fnrDialogParent')]/div[(@class='modal-dialog gtc-rep-modal-dialog')]/div[(@class='modal-dialog-buttons')]/button[(text()='Apply to all')]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();
setTimeout(() => document.evaluate("//div[(@id='fnrDialogParent')]/div[(@class='modal-dialog gtc-rep-modal-dialog')]/div[(@class='modal-dialog-buttons')]/button[(text()='Exit')]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click(), pause) 
            })(400);

我无法模拟单击重复按钮,该按钮应该使用我需要单击的两个按钮弹出以完成工作。按钮本身是iframe内部的DIV。我尝试了我在此处找到的大多数方法进行点击模拟,最新的是该方法,但它并不能使用所有方法(参考文献是正确的)

var ifrm = document.querySelectorAll('iframe')[2];<br> 
$(ifrm).contents().find('img.jfk-button-img.gtc-img-rep').click();

(按钮本身是内部具有IMG的DIV。根据一个段是否在其他地方重复,该按钮是-NABLED或-DISABLED。这是启用按钮的HTML代码:

<div role="button" class="goog-inline-block jfk-button jfk-button-standard jfk-button-narrow jfk-button-collapse-left jfk-button-collapse-right jfk-button-clear-outline" tabindex="0" id="goog-gtc-repbutton" aria-label="Repeated: 3" data-tooltip="Repeated: 3" style="user-select: none;"><img src="./images/cleardot.gif" class="jfk-button-img gtc-img-rep" style="width: 21px; height: 21px;"></div>
javascript: (function() {
    const a = f => new MouseEvent(f, { bubbles: !0 }),
        b = f => () => document.querySelector(f).click(),
        c = f => `#fnrDialogParent .gtc-rep-modal-dialog .modal-dialog-buttons button[name=${f}]`,
        d = { imgSel: (f => () => {
                const g = a('mousedown'),
                    h = a('mouseup'),
                    i = document.querySelector(f);
                i.dispatchEvent(g), i.dispatchEvent(h) })('img.jfk-button-img.gtc-img-rep'), applyToAll: b(c('repDialogReplaceAll')), exit: b(c('repDialogExit')) };
    d.imgSel(), d.applyToAll(), d.exit() })();

这是回答我的问题并进行3次点击的书签。这个答案把我倾诉了。

相关内容

  • 没有找到相关文章

最新更新