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

无法使用Selenium Webdriver单击()或提交()输入,selenium,selenium-webdriver,ui-automation,Selenium,Selenium Webdriver,Ui Automation,所以我在一个页面上有一个输入元素,我需要点击它转到另一个页面。问题是,当我在元素上单击user()或submit()时,什么都不会发生。我有一个自定义的高亮显示方法正在工作,因此我可以看到我实际上在正确的元素上。由于某种未知的原因,click()似乎不起作用 这是我正在使用的html <TBODY> <TR style="" class=" STDLISTROW_O" onmouseover=listMouseOver(this); onmouseout=listMouseO

所以我在一个页面上有一个输入元素,我需要点击它转到另一个页面。问题是,当我在元素上单击user()或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>
我还尝试过隔离输入的父td,并在没有运气的情况下单击它。我在这里不知所措

  • 我需要补充的是,我使用的是Internet Explorer驱动程序(IEDriverServer),我使用的是IE9浏览器。不幸的是,这就是这个应用程序将运行的全部内容
首先尝试其他浏览器,如Firefox和Chrome,以确保您的代码(定位器等)正确无误。然后是一些你可能想在IE上尝试的解决方案

  • 单击之前,请先关注该元素
ecr按钮。单击();//虚拟单击以聚焦
//或ecrButton.sendKeys(“\n”);//也试图集中注意力
ECR按钮。单击();//你真的点击了吗
  • 使用
    操作
    类中的单击方法
新操作(驱动程序)。单击(ECR按钮)。执行();
  • 注入JavaScript单击
JavascriptExecutor执行器=(JavascriptExecutor)驱动程序;
executor.executeScript(“参数[0]。单击();”,ECR按钮);
找到了问题,其中包含了对我有用的答案

((JavascriptExecutor) driver).executeScript("arguments[0].click()", ecrButton);
IEDriverServer中似乎存在某种缺陷,不允许您单击某些输入。相反,使用javascript似乎效果不错


*非常感谢@KrishPrabakar

输入没有“type”属性这一事实与此有关。如果输入具有属性type='button',它是否工作?@SteveCrawford它具有属性type='button'。看看所有javascript的结尾。啊,很抱歉我错过了它,因为它周围没有引号。我不是100%,但这似乎不是有效的html,“saveBtnBG”和“saveBtnC”是什么,它们应该是类吗?@SteveCrawford我肯定这不是有效的html。该应用程序是一个混乱,我没有权限更改任何内容或广告ID的任何元素。这当然是一个挑战!你一定在我之前就回答了。我认为你的答案是正确的,因为它包含了对我有用的javascript技术。谢谢
((JavascriptExecutor) driver).executeScript("arguments[0].click()", ecrButton);