无法使用Selenium Webdriver单击()或submit()输入

时间:2014-01-20 19:29:26

标签: selenium selenium-webdriver ui-automation

所以我在页面上有一个输入元素,我需要点击它才能转到另一个页面。问题是,当我在元素上单击click()或submit()时,没有任何反应。我有一个自定义突出显示方法,所以我可以看到我实际上是正确的元素。由于某些未知原因,click()似乎没有在它上面工作。

这是我正在使用的HTML

<TBODY>
<TR style="" class=" STDLISTROW_O" onmouseover=listMouseOver(this);  onmouseout=listMouseOut(this); saveBG>
<TD class=STDLISTBTN>
<INPUT style="COLOR: " onmouseover="listBtnMouseOver(this);   window.status = this.status_txt;" onmouseout="listBtnMouseOut(this); window.status = '';" onclick=" event.cancelBubble = true;  if (this.getAttribute('clicked') == 'false')  { document.location.href = 'client$.startup?P_CLIENT_ID=7605677'; this.setAttribute('clicked', 'true'); } " value=ECR type=button status_txt="client$.startup?P_CLIENT_ID=7605677" clicked="false" saveBtnBG saveBtnC></TD>

这是我的Selenium / Java方法

public void clickECRButtonWithID(String clientID) {
    log.info("Click the ECR button for the row with client id: " + clientID);
    WebElement idRow = driver.findElement(By.xpath("//td[contains(text(),'"
            + clientID + "')]/ancestor::tr"));
    WebElementExtender.highlightElement(idRow);
    WebElement ecrButton = driver.findElement(By.cssSelector("input[value='ECR']"));
    WebElementExtender.highlightElement(ecrButton);
    ecrButton.click();
}

我也试过隔离输入的父td并点击它没有运气。我在这里不知所措。

  • 我需要补充说我正在使用Internet Explorer驱动程序(IEDriverServer)并且我在IE9浏览器上。不幸的是,所有这个应用程序都将运行!

2 个答案:

答案 0 :(得分:5)

首先尝试其他浏览器,例如Firefox和Chrome,以确保您的代码(定位器等)正确无误。然后你可能想尝试一些IE解决方案。

  • 点击前关注元素。
ecrButton.click(); // dummy click to focus
// or ecrButton.sendKeys("\n"); // also tries to focus
ecrButton.click(); // do your actual click
  • 使用Actions课程中的点击方法。
new Actions(driver).click(ecrButton).perform();
  • 点击JavaScript点击
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", ecrButton);

答案 1 :(得分:0)

发现了this问题,其中包含了对我有用的答案。

((JavascriptExecutor) driver).executeScript("arguments[0].click()", ecrButton);

IEDriverServer中似乎存在某种错误,它不允许您单击某些输入。使用javascript似乎运作良好。

*非常感谢@KrishPrabakar