2012-08-28 37 views
1

點擊()上一個我有一個按鈕誰的代碼如下:JavaScript不能在Chrome

<input type="button" onclick="someFunction();" value="doSomething"> 

我想點擊這個按鈕Selenium2。我設法獲得元素,但click()函數在Chrome中不起作用。

我試圖直接在JavaScript上執行它,但它仍然無法在Chrome中使用。

它可以工作,如果你直接點擊按鈕,它也適用於Firefox。

任何人有任何想法如何解決這個問題?

編輯:我忘記了我的例子中的括號。它們出現在「真實」的代碼中。

EDIT2:用於模擬點擊硒2的代碼是:

driver.findElement(By.tagName("input")).click(); 

有人問之前,還有沒有其他的變量名「輸入」頁面。

+2

@dystroy我無法想象去除分號會有所幫助。它仍然不會被調用,是嗎? –

+0

嘗試修改你的代碼到這個:'' – Shmiddty

回答

6

一般來說,使用內聯屬性來定義事件處理程序是一個壞主意。相反,您應該選擇使用JavaScript的綁定事件處理程序,以便將內容(HTML)和功能(JavaScript)分開。

但是,問題似乎是你實際上沒有調用函數。將其更改爲:

<input type="button" onclick="someFunction();" value="doSomething"> 
+3

+1,特別是提醒OP避免內聯事件處理程序。 – FishBasketGordo

+0

如果您打算告訴OP來避免它們,可能想要提供內聯事件處理程序的替代方案。 –

+0

@arxanas同意,只是試圖找到一個體面的指導,使用常規的JavaScript綁定事件。 –

1

我認爲你必須使用功能名稱與功能括號()

這樣 輸入類型= 「按鈕」 的onclick = 「someFunction();」 值=」 DoSomething的」

我希望這將幫助你

0

嘗試這樣的,甚至更好的JavaScript放在單獨的文件中:

<input type="button" value="doSomething" id="someFuncBtn"> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#someFuncBtn').on('click', function(){ 
      someFunction(); 
     }); 
    }); 
</script> 
0

我意識到這是點擊問題,有時候有點奇怪。它用這種方式更好:

driver.findElements(By.tagName("input")).get(0).click(); 

即使它仍然失敗「有時」。但我仍然不知道爲什麼。

相關問題