2014-11-24 114 views
0

我想點擊一個按鈕,它具有下面的HTML。硒Java - 試圖點擊按鈕

<button title="XXYZ" class="clsBarButton" id="tbCodeBookI10" hidefocus="true" 
    onmouseover="changeTBC(this)" onmouseout="changeTBC(this)" onmousedown="changeTBC(this)" 
    onmouseup="changeTBC(this)" onclick="OpenReference('i10codebook'); resyncTabs();" type="button"> 
</button> 

我在我的代碼中嘗試了以下不同的行,但他們都沒有拋出這樣的元素。

driver.findElement(By.xpath("//button[@id='tbCodeBookI10' and class='clsBarButton2']")).click() 

driver.findElement(By.cssSelector("html body.clsBody.clsAJAXBody div#Toolbar 
button#tbCodeBookI10.clsBarButton")).click(); 
+0

也許它意味着「沒有這樣的元素」? – Maksym 2014-11-24 21:56:57

+0

按鈕有什麼HTML?空文本,即沒有按鈕? *困惑* – Robert 2014-11-24 21:58:07

+0

CSS類不匹配。你正在尋找'clsBarButton2',而按鈕實際上有'clsBarButton'。此外,爲什麼用XPath查看,如果你有一個獨特的元素'ID'? – toniedzwiedz 2014-11-24 22:03:57

回答

0

這應該只是罰款

driver.findElement(By.id("tbCodeBookI10")).click(); 

如果它不斷失敗,你在你的意見建議,檢查兩件事情,即HTML是一種有效的HTML,那你的按鈕不在範圍一個iframe(在這種情況下,你首先需要切換到的iframe)

切換到iframe中下面的代碼應該工作

driver.switchTo().defaultContent(); 
    WebElement yourIframe = driver.findElement(By.name(*THE NAME OF YOUR IFRAME*)); 
    driver.switchTo().frame(yourIframe); 
+0

無法定位元素:{「method」:「id」,「selector」:「tbCodeBookI10」} – first6684 2014-11-24 22:28:36

+0

edite在一個答案中,顯然這個問題不在於選擇器 – 2014-11-24 22:36:05

+0

看起來像HTML是有效的。是的,我的按鈕位於iframe中。這裏是我的代碼: driver.switchTo()。window(popUpWindow); (); window()。maximize(); ();();。 – first6684 2014-11-24 22:50:44