2014-09-18 194 views
0

我試圖使用Google Chrome中的開發人員工具控制檯單擊網頁上的按鈕。如何在瀏覽器控制檯中按名稱單擊按鈕

該按鈕的HTML是:

<input value="Send an Email" class="btn" name="email" onclick="navigateToUrl('/_ui/core/email/author/EmailAuthor?p2_lkid=00QU0000008xZYi&amp;rtype=00Q&amp;retURL=%2F00QU0000008xZYi','RELATED_LIST','email');" title="Send an Email" type="button"> 

正如你所看到的,按鈕沒有一個id屬性,所以我想用name屬性來選擇它。我的JavaScript代碼是:

document.getElementsByName("email").click() 

我在做什麼錯了?

+2

getElement計劃** S **綽號返回整個集合,而不是一個單一的元素。 – Bergi 2014-09-18 17:39:10

+1

看看名稱 - 'getElementsByName' ...它是複數「元素」。你不能在集合上調用'click'。你需要在集合中獲得一個特定的項目,可能是'[0]',並且在那個項目上調用'click' – Ian 2014-09-18 17:39:21

+0

除了提供的答案之外,如果你有多個名稱爲「email」的元素,而不是僅僅獲取第一個('[0]'),您可以遍歷document.getElementsByName(「email」)的結果並查看value屬性是否爲「發送電子郵件」(此處),然後才調用'click' – Ian 2014-09-18 17:42:51

回答

1

Elements = plural = node列表

您需要選擇第一個。

document.getElementsByName("email")[0].click() 
-2

它得到了很好的回答這個問題依賴於以下事實:document.getElementsByName()返回節點列表,而不是單個元素。

只是指向一個替代,沒有列表返回方法:

如果你想瀏覽一個單一的元素,並且沒有一個id,但是需要尋找任何屬性(不只是名稱) ,你可以把它用document.querySelector(),使用一個類似CSS選擇器,並返回第一個匹配的元素,因此:

var element = document.querySelector("[name='email']"); 
+0

對於downvoter:這個答案沒有被公佈爲可接受的答案,但是因爲問題的標題是*如何在瀏覽器控制檯中按名稱點擊按鈕*,並且問題的核心在於描述是*按鈕沒有id屬性,所以我試圖用名稱屬性*來選擇它,它可能會吸引更多的人尋找按屬性選擇元素。 – LcSalazar 2014-09-18 17:52:04