2015-11-29 324 views
1
<div align="right" class="content-jumpmenu" id="searchDiv0"> 
<select name="menu1" id="menu1"> 
<input onclick="MM_jumpMenuGo('menu1','window','/ccmadmin', 1)" type="button" value="Go"/> 

我需要點擊Onclick=MM_JumpMenuGo按鈕。我試過:Onclick找到並點擊Selenium按鈕

driver.findElement(By.linkText("Go")).click(); 
driver.findElement(By.cssSelector("input[type='button'][value='Go']")).click(); 
driver.findElement(By.cssSelector("input#MM_jumpMenuGo)")).click(); 

這些都沒有工作。我只需要在Selenium中按下該按鈕。請幫幫我。謝謝。

+0

請格式化您的代碼 – prasun

回答

0
IJavaScriptExecutor js = driver as IJavaScriptExecutor; 
js = driver as IJavaScriptExecutor;     
js.ExecuteScript("MM_JumpMenuGo"); 
1

你的第二個選擇器實際上看起來是正確的。您可以儘管省略單引號:

input[type=button][value=Go] 

選擇器通常較爲寬泛,可以輕鬆地匹配頁面上的不同元素。

下面是替代選擇:

div.content-jumpmenu input[type=button][value=Go] 
select#menu1 input[type=button][value=Go] 
input[onclick^=MM_jumpMenuGo] 

最後一個是與MM_jumpMenuGo搜索與onclick屬性值的input元件開始。


而且,由於這是一個「跳轉菜單」,它可能是通過某種操作激活的 - 在菜單上單擊或滑動鼠標。你也可能會錯過這一步。


可能會出現一些動畫或延遲顯示菜單。可能還需要顯式等待:

WebDriverWait wait = new WebDriverWait(driver, 5); 
WebElement goButton = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("input[onclick^=MM_jumpMenuGo]"))); 
goButton.click();