【问题标题】:How can I select this element with javascript?如何使用 javascript 选择此元素?
【发布时间】:2015-09-15 05:22:54
【问题描述】:

我正在尝试编写一个在启动时登录网站的 applescript 应用程序。到目前为止,我可以成功打开Chrome,将网页加载到活动标签中,选择并输入密码,但我无法点击提交按钮。

下面是页面上的元素:

<button type="submit" class="btn  btn--ac" alt="Login" 
   title="Login" tabindex="6"><i aria-hidden="true" 
   class="lush  lush-locked"></i> Login</button>

我的 javascript 技能水平几乎为零,但我找不到成功选择该项目并单击它的方法。我已经尝试过使用 TagName 和 ClassName 但它不起作用,也许我的语法不正确。有没有办法在没有 ID 类型的情况下做到这一点?

我试过了:

execute front window's active tab javascript 
"document.getElementByClassName('btn, btn--ac').click()"

execute front window's active tab javascript 
"document.getElementByTagName('button').click()"

我应该注意到这个脚本在谷歌浏览器中运行。

提前感谢您的帮助。

【问题讨论】:

  • 它是那个类的唯一按钮吗?还是第一个?你可以试试$('.btn--ac').first().click()
  • 它是整个页面上唯一的按钮,也是唯一具有btn和btn--ac类的元素

标签: javascript google-chrome applescript


【解决方案1】:

首先,您使用了错误的功能。应该是

document.getElementsByClassName

尝试使用:(假设提交按钮是类btn的唯一按钮)

document.getElementsByClassName('btn')[0].click();

这是来自Mozilla的函数的基本定义:

document.getElementsByClassName():
返回具有所有子元素的类数组对象 给定的类名。

因此,您会得到一个元素列表。因此,您选择其中的第一个元素(使用 0 作为索引),然后单击它。

【讨论】:

  • 谢谢Sarath,这就是问题所在!现在按预期工作!
【解决方案2】:

在纯js中按类选择元素的正确语法是:

document.getElementsByClassName('btn--ac');

这样,您将获得一个包含所有元素的数组,其中包含类“btw--ac”。在你的情况下试试这个:

document.getElementsByClassName('btn--ac')[0].click();

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 2011-02-07
    • 2021-03-30
    • 1970-01-01
    • 2010-10-24
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多