当前位置: 首页 > 知识库问答 >
问题:

Selenium找到web应用程序的“下一步”按钮,但单击()无效

公西翊歌
2023-03-14

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

我怎样才能进入下一页?

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

单击元素后:

正如在另一篇文章中所建议的那样,我单击一个不可单击的元素以获得焦点,然后单击下一个按钮...但按钮突出显示,但不会转到下一页

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();

部分内容是

<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();

编辑 在进一步了解此行为后,似乎元素已突出显示,但实际上并未单击。(我如何知道这一点?当测试结束时,元素将保持突出显示状态。一旦我移动鼠标,元素就变得正常)所以不知道为什么点击没有发生

共有1个答案

南宫才艺
2023-03-14

可以尝试两件事:

>

  • 移动到一个元素,然后单击:

    Actions builder = new Actions(driver);
    builder.moveToElement(link).click(link).build().perform();
    

    通过执行javascript click()单击链接:

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

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

  •  类似资料:
    • 我有一个包含36个按钮的响应网站。乍一看,我们只能看到12个按钮,我需要验证它们的文本值,我知道如何做到这一点。但问题是我需要点击下一步按钮,直到它不可见。那么在c#中如何用selenium来做呢? 此外,在单击“下一步”时,我们需要将按钮的文本存储在一个列表或数组中,这样我就可以将所有列表添加到一个新列表中并进行比较。 看看下面的代码,我试过了。 现在上面的工作正常,但当“下一步”按钮不可用时,

    • 我正试图让JQuery在按下下一个按钮时自动单击该按钮。在互联网上,我发现应该是这样的(查看JQuery部分)。但由于某种原因,它不起作用。 它们必须在同一个代码中吗? 我尝试过的:JQuery: 表单中的按钮1 HTML: 表单中的按钮2 HTML:

    • 问题内容: 我正在尝试使用selenium和python 在该特定网站上单击以查看更多信息。这就是我测试的方式,并且出现以下错误 这是可行的: 我想念什么? 问题答案: 这是一个非常简单的运行代码段,该代码段使用XPATH查找按钮“ Se flere”。

    • 在我的程序中,它将单击浏览器中的一个按钮,并且在该页面中,应该会出现另一个按钮。出现该按钮后,我的程序将立即运行下一个操作来单击下一个按钮。我目前收到此错误: ElementNotVisibleException:消息:元素不可见 因此,我假设我正在调用该操作,以便在该按钮出现之前单击下一个按钮。我的问题是,我该怎么做才能让我的程序等到我可以点击按钮,再点击按钮? 这就是我的程序底部的代码的样子。

    • 嗨,我是一个网络抓取新手,一直在尝试使用Selenium用python抓取论坛 我想让Selenium点击"下一步",直到最后一页,但我不知道如何打破循环。 当我通过部分链接找到下一个按钮时,自动单击将继续到下一个线程,例如page1- 当我按类名找到下一个按钮时,自动单击将在到达最后一页时单击“prev”按钮 我的问题是: 我应该使用哪个定位器?(按类还是按部分链接或任何其他建议? 如何打破循环

    • 图像中标记的元素:- 我尝试了许多方法,例如: 上述元素的X_path:"/html/body/div/div[3]/div/div/div[4]/div/div/form/div/div[3]/p/img" 但是以上似乎都没有点击按钮并获取页面上的数据。 我的代码:-