所以我在页面上有一个输入元素,我需要点击它才能转到另一个页面。问题是,当我在元素上单击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并点击它没有运气。我在这里不知所措。
答案 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();
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", ecrButton);
答案 1 :(得分:0)
发现了this问题,其中包含了对我有用的答案。
((JavascriptExecutor) driver).executeScript("arguments[0].click()", ecrButton);
IEDriverServer中似乎存在某种错误,它不允许您单击某些输入。使用javascript似乎运作良好。
*非常感谢@KrishPrabakar