如何检查元素的禁用状态,然后继续在selenium webdriver中

时间:2015-03-27 19:09:08

标签: java selenium webdriver

我有下一个按钮,脚本一直点击按钮,直到它到达最后一页。它应该读取并比较每个页面中的数据,然后一旦禁用该按钮就应该从循环中退出。当下一个按钮处于启用状态时,它会读取数据并进行比较,但是当下一个按钮被禁用时,脚本不会读取该页面

这是元素

enter image description here

这是我的代码

do {
....
....

      if(driver.findElement(By.id("ReportViewer1_ctl06_ctl00_Next_ctl00_ctl00")).isDisplayed()) {

      driver.findElement(By.id("ReportViewer1_ctl06_ctl00_Next_ctl00_ctl00")).click();

        } else {

        }           
   } while(driver.findElement(By.id("ReportViewer1_ctl06_ctl00_Next_ctl00_ctl00")).isDisplayed());

问题在于,当到达第二页时,接下来该按钮将被禁用,而While退出而不读取第2页中的数据。

如何确保阅读该页面

  1. 当只有1页数据时(因此下一个按钮将在开始时被禁用)

  2. 到达最后一页时,(下一个按钮进入禁用状态)

  3. 我曾尝试过FluentWait,但未按此处所述https://stackoverflow.com/questions/29282178/selenium-fluentwait-method-failing-to-ignore-nosuchelement

    编辑...添加HTML以禁用按钮状态

    <td>
        <input id="ReportViewer1_ctl06_ctl00_Next_ctl01_ctl00" type="image" 
    style="border-style: none; height: 16px; width: 16px; border-width: 0px; cursor: default;"
     alt="Next Page" src="/xxxx Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=
    0.0.30319.1&Name=Microsoft.Reporting.WebForms.Icons.NextPageDisabled.gif" 
    title="Next Page" disabled="disabled" name="ReportViewer1$ctl06$ctl00$Next$ctl01$ctl00">
    

    再次编辑--- 启用按钮时的HTML(没有禁用属性)

    <input id="ReportViewer1_ctl06_ctl00_Next_ctl00_ctl00" type="image" style="border-style: 
    none; height: 16px; width: 16px; border-width: 0px;" alt="Next Page" 
    src="/xxxxx/Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=10.0.30319.
    1&Name=Microsoft.Reporting.WebForms.Icons.NextPage.gif"
     title="Next Page" name="ReportViewer1$ctl06$ctl00$Next$ctl00$ctl00">
    

1 个答案:

答案 0 :(得分:1)

您需要使用isEnabled()支票代替isDisplayed()