使用webdriver无法正常处理yui-overlay内的按钮

时间:2013-06-05 09:34:37

标签: selenium webdriver overlay yui

无法使用网络驱动程序点击yui-overlay中的“否”按钮

在我的网络应用程序中,单击“保存”按钮时会显示yui-overlay。使用firebug(已编辑)获取的叠加层代码为

<div id="firstDiv_dialog" class="yui-module yui-overlay yui-panel" ...>
<div class="hd" ... id="addCoveredMember_dialog_h">Title Displayed</div>
<div id="secondDiv">

<div class="xyz-message-container">
    <div class="xyz-message-info-qw">
            <ul class="actionMessage">
                <li><span>some text displayed ?</span></li></ul>
    </div>
</div>
<div id="confirmationdialog_div" class="qw-separate-form-action-panel">
    <div class="xyz-actionpanel">
    ...
    <span class="xyz-actionpanel-item"> 
    <span id="xyz-widget-button-btnConfirmNo-span"><span id="btnConfirmNo" class="yui-button yui-push-button">
    <span class="first-child"><button type="button" tabindex="1002" id="btnConfirmNo-button">NO</button></span></span></span>
    <script>
        ...
    </script>
        </span>
        <script>
        ...
    </script>
    </div></div>

</div><a class="container-close" href="#">Close</a></div>

我的目标是点击否按钮

我使用的各种webdriver语句是

  1. driver.findElement(By.cssSelector("#btnConfirmNo-button")).click();

  2. driver.findElement(By.xpath("//span[@id=\"btnConfirmNo\"]/span/button[@id=\"btnConfirmNo-button\"]")).click();

  3. driver.findElement(By.xpath("//div[@class=\"xyz-actionpanel\"]/span[@class=\"xyz-actionpanel-item\"]/span[@id=\"xyz-widget-button-btnConfirmNo-span\"]/span/span/button[@id=\"btnConfirmNo-button\"]")).click();

  4. driver.findElement(By.id("btnConfirmNo-button")).click();

  5. driver.findElement(By.xpath(".//button[.='NO']")).click();

  6. driver.switchTo().frame(driver.findElement(By.id("addCoveredMember_dialog_c")));

    WebElement noAddCoveredMemberBtn_visible =(new WebDriverWait(driver,20))

    。直到(ExpectedConditions.visibilityOfElementLocated(通过

    .xpath("//div[@class=\"felix-actionpanel\"]/span[@class=\"felix-actionpanel-
    

    项目\ “] /跨度[@id = \” XYZ-插件键式btnConfirmNo- 跨度\ “] /量程/量程/按钮[@id = \” btnConfirmNo按钮\ “]”)));

        driver.findElement(By.xpath(".//button[.='NO']")).click();
    
  7. 我也试过切换到框架(虽然我怀疑它是否在这种情况下是相关的)

    driver.switchTo().frame(driver.findElement(By.id("firstDiv_dialog")));
    

    执行脚本后显示的各种异常是

    1. ElementNotVisibleException:
    2. StaleElementReferenceException 和
    3. 超时异常
    4. 观察:

      运行webdriver脚本时,将显示叠加层。但是没有点击“否”按钮。它等了一段时间,浏览器关闭了。

      有人可以识别,我犯了错误。

      谢谢

      摩西

0 个答案:

没有答案