Selenium找到Web应用程序的“下一步”按钮,但click()不起作用

时间:2015-03-23 15:02:25

标签: java selenium selenium-webdriver click

这是在FF浏览器上。 我有一个Web应用程序,工具栏上有下一个按钮。我的Selenium脚本找到按钮并显然点击它,因为元素突出显示但下一页没有打开。

如何让它进入下一页?

以下是处于空闲状态的工具栏的图像:

enter image description here

点击元素后:

enter image description here

正如另一篇文章中所建议的那样,我点击一个不可点击的元素来获得焦点然后点击下一个按钮......但按钮突出显示但没有进入下一页

driver.findElement(By.xpath("/html/body/form/span[1]/div/table/tbody/tr[4]/td/span")).click();
driver.findElement(By.xpath("/html/body/form/span[1]/div/table/tbody/tr[4]/td/span/div/div/div[1]/table/tbody/tr/td[11]/div")).click();

部分HTML是

<table id="ReportViewer1_fixedTable" cellspacing="0" cellpadding="0" style="table-layout:fixed;width:100%;height:100%;">
<tbody>
  <tr style="background-color:#ECE9D8;">
  <tr id="ParametersRowReportViewer1" style="display:none;">
  <tr style="height:6px;font-size:2pt;display:none;">
  <tr>
  <td colspan="3">
   <span id="ReportViewer1_Toolbar">
    <div id="ReportViewer1_ctl06" style="font-family:Verdana;font-size:8pt;border-bottom:1px #CCCCCC Solid;background-color:#ECE9D8;background-image:url(/PlateTechManager/Reserved.ReportViewerWebControl.axd?OpType=BackImage&Version=10.0.30319.1&Color=%23ECE9D8&Name=Microsoft.Reporting.WebForms.Icons.toolbar_bk.png);">
     <div style="padding-left:6px;">
      <div class=" " style="display:inline-block;font-family:Verdana;font-size:8pt;vertical-align:top;">
       <table cellspacing="0" cellpadding="0" style="display:inline;">
        <tbody>
         <tr>
           <td height="28px">
           <td width="4px"></td>
           <td height="28px">
           <td width="4px"></td>
           <td height="28px">
           <td width="4px"></td>
           <td height="28px">
           <td width="4px"></td>
           <td height="28px">
           <td width="4px"></td>
           <td height="28px">
             <div id="ReportViewer1_ctl06_ctl00_Next">
              <div id="ReportViewer1_ctl06_ctl00_Next_ctl00" style="border: 1px solid transparent; background-color: transparent; cursor: default;">
               <table title="Next Page">
                 <tbody>
                   <tr>
                      <td>

我试过这个并且没有工作

Actions builder = new Actions(driver);
WebElement we = driver.findElement(By.xpath("/html/body/form/span[1]/div/table/tbody/tr[4]/td/span/div/div/div[1]/table/tbody/tr/td[11]/div"));
builder.moveToElement(we).click().build().perform();

修改 在进一步了解这个行为后,看起来元素突出显示但实际上没有点击。(我怎么知道这个?当测试结束时元素保持突出显示。一旦我移动鼠标元素变得正常)所以不要#39;不知道为什么没有发生点击

1 个答案:

答案 0 :(得分:1)

要尝试两件事:

  • 移动到元素并单击:

    Actions builder = new Actions(driver);
    builder.moveToElement(link).click(link).build().perform();
    
  • 执行javascript click()

    点击该链接
    ((JavascriptExecutor) driver).executeScript("arguments[0].click();", link);
    

其中link是链接的WebElement个实例(findElement()调用的结果)。