Selenium Webdriver - (Java) - 使用HTML对话框

时间:2013-10-14 06:53:32

标签: java dialog popup selenium-webdriver

情况如下:

  1. 点击Import file按钮(此操作将上传文件)。
  2. 文件上传后,会出现一个弹出窗口(HTML弹出窗口)。我使用driver.switchTo().frame(1);切换到该弹出窗口并单击该弹出窗口中的“下一步”。
  3. 点击Next会将用户导航到该弹出窗口中的第二步。在弹出的第二步中单击process commission按钮。
  4. 点击process commission按钮后,会出现一个新的确认弹出窗口(HTML弹出窗口)。
  5. 我无法在该确认弹出窗口中点击yes
  6. 我尝试过使用:
    driver.switchTo().frame(0); - 没有工作 driver.switchTo().frame(1); - 没有工作 driver.switchTo().frame(2); - 无效

    请建议任何解决方案。

    <form id="Form1" enctype="multipart/form-data" action="ProcessCommission.aspx?i=2115&pn=Manage+Commission&j=2345&prn=Process+Commission" method="post">
    <iframe scrolling="no" frameborder="0" src="javascript:'<html></html>';" style="position: fixed; width: 400px; height: 100px; left: 431px; top: 53px; background-color: rgb(255, 255, 255); z-index: 3003;" tabindex="-1">  
    <div id="RadWindowWrapper_confirm1381733327500" class="RadWindow RadWindow_Windows7 rwNormalWindow rwTransparentWindow" style="width: 400px; height: 100px; position: absolute; transform: none; backface-visibility: visible; visibility: visible; left: 431px; top: 377px; z-index: 3003;" unselectable="on">  
    <table class="rwTable" cellspacing="0" cellpadding="0" style="height: 51px;">  
    <tbody>  
    <tr class="rwTitleRow">  
    <tr class="rwContentRow">  
    <td class="rwCorner rwBodyLeft"> </td>
    <td class="rwWindowContent" valign="top">  
    <iframe frameborder="0" name="confirm1381733327500" src="javascript:'<html></html>';" style="width: 100%; height: 100%; border: 0px none; display: none;" tabindex="0">  
    <div id="confirm1381733327500_content">  
    <div class="rwDialogPopup">  
    <div class="rwDialogText">  
    <div>
    <a class="rwPopupButton" href="javascript:void(0); "onclick="$find('confirm1381733327500').close(true);" tabindex="-1">
    <span class="rwOuterSpan">  
    <span class="rwInnerSpan">Yes</span>  
    </span>
    </a>  
    <a class="rwPopupButton" href="javascript:void(0);" onclick="$find('confirm1381733327500').close(false);" tabindex="-1">  
    <span class="rwOuterSpan">  
    <span class="rwInnerSpan">No</span>  
    </span>
    

2 个答案:

答案 0 :(得分:-1)

试试这个:

driver.switchto.frame(0)
driver.switchto.frame(confirm1381733327500)

答案 1 :(得分:-1)

dr.SwitchTo().Frame(dr.FindElement(By.TagName("iframe")));
dr.SwitchTo().DefaultContent();
dr.FindElement(By.XPath("your stuff goes here").Click();
dr.SwitchTo().DefaultContent();//switch back to default content of original page