通过Onclick查找并单击Selenium按钮

时间:2015-11-29 12:34:19

标签: javascript selenium button selenium-webdriver

<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按钮。我试过了:

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中按下那个按钮。请帮我。谢谢。

2 个答案:

答案 0 :(得分: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]

最后一个是搜索带有input属性值的onclick元素 MM_jumpMenuGo开头。

而且,由于这是一个“跳转菜单”,它可能会通过一些动作激活 - 点击或鼠标悬停在菜单上。你可能也会错过这一步。

显示菜单时可能会有一些动画或延迟。也可能需要明确的等待:

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

答案 1 :(得分:0)

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