无法使用page-object识别iframe

时间:2014-06-24 06:59:10

标签: ruby iframe selenium-webdriver watir-webdriver page-object-gem

我尝试了不同的方法来使用我试过的页面对象来识别嵌套帧 in_iframe(index: 1) do |frame|..end我尝试了id&上课但没有运气

<div id="tabsWrapper">
<table id="defaultTabs" width="100%" cellspacing="0" cellpadding="0" border="0">
    <tbody>
        <tr>
            <td class="tabContentCell">
                <div id="tabContentContainer" style="height: 443px;">
                    <a id="top" name="top"></a>
                    <div id="tabDefaultContent"> </div>
                    <div id="tab14036918566282Content" class="tabContent" style="display: none;">
                        <iframe id="tab14036918566282Frame" class="portal xicSeamlessUI" width="100%" height="716px" frameborder="0" "="" name="tab14036918566282Frame" marginheight="0" marginwidth="0" src="/mywork/ptl/secure/defaultportal" style="height: 443px;">
                            <!DOCTYPE html>
                            <html class="ltr yui3-js-enabled gecko ltr js firefox firefox24 firefox24-0 win secure" lang="en-US" dir="ltr">
                        </iframe>
                    </div>
                    <div id="tab14036918654673Content" class="tabContent">
                        <iframe id="tab14036918654673Frame" class="portal xicSeamlessUI" width="100%" height="716px" frameborder="0" "="" name="tab14036918654673Frame" marginheight="0" marginwidth="0" src="/ncs/secure/jas/create" style="height: 443px;">
                            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                            <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
                                <head>
                                    <body class="browserFF browserFF3 Init">
                                        <div class="xicSeamlessUI" xic:app="Create" xic:title="Create">
                                            <span id="bFeedback" class="feedback"> </span>
                                            <div id="confirmationWindow69" xic:width="50%">
                                                <div id="contentModalWindow6c" xic:width="50%">
                                                    <input id="hiddenText" class="xicInputText" type="text" size="1" style="visibility:hidden" name="hiddenText">
                                                        <input id="hiddenCheckBox" type="checkbox" onclick="var wcall=wicketAjaxPost('?wicket:interface=:0:hiddenCheckBox::IBehaviorListener:0:', wicketSerialize(Wicket.$('hiddenCheckBox')),null,null, function() {return Wicket.$('hiddenCheckBox') != null;}.bind(this));" name="hiddenCheckBox" style="visibility: hidden">
                                                            <table cellspacing="0" cellpadding="0">
                                                                <tbody>
                                                                    <tr>
                                                                        <td width="83%"> </td>
                                                                        <td width="17%" align="right" nowrap="nowrap">
                                                                            <label id="categoryDescription65">Select Category: </label>
                                                                            <span id="categoryDescriptionDropDown66">
                                                                                <div class="xicInputWrapper xicInputWrapperSelect">
                                                                                    <select id="cellDropDown67" class="xicSmartSelectLoaded" name="categoryDescriptionDropDown:cellDropDown" onchange=".page.showPleaseWait('Processing...');var wcall=wicketAjaxPost('?wicket:interface=:0:categoryDescriptionDropDown:cellDropDown::IBehaviorListener:0:', wicketSerialize(Wicket.$('cellDropDown67')),null,null, function() {return Wicket.$('cellDropDown67') != null;}.bind(this));">
                                                                                        <option value="0" selected="selected">New</option>
                                                                                        <option value="1">Basic</option>
                                                                                        <option value="2">Advanced</option>
                                                                                        <option value="3">Premium</option>
                                                                                        <option value="4">Other</option>
                                                                                    </select>
                                                                                </div>
                                                                            </span>
                                                                        </td>
                                                                    </tr>
                                                                    <tr>
                                                                        <tr>
                                                                            <tr>
                                                                </tbody>
                                                            </table>
                                                            <div id="myPleaseWait22" class="xicPleaseWait xicFullPageZIndex" style="z-index: 2000; display: none;">
                                                            </div>
                                                            <div id="PleaseWait" class="xicPleaseWait xicFullPageZIndex" style="z-index: 6000; display: none;">
                                    </body>
                            </html>
                        </iframe>
                    </div>
                </div>
            </td>
        </tr>
        <tr>
    </tbody>
</table>

这里有两个帧1处于活动状态,另一个处于隐藏状态。

例外:

timed out after 30 seconds, waiting for {:css=>"select[name*='Description']", :tag_name=>"select"} to become present (Watir::Wait::TimeoutError)

在我尝试使用firefox和chrome时,这似乎是一个IEDriver问题,它运行良好

1 个答案:

答案 0 :(得分:0)

明确切换到有问题的框架为我工作。

首先切换到框架,一旦在框架内完成工作,不要忘记返回默认内容:

driver.switch_to.frame "frameName"

Do your stuff within IFrame

driver.switch_to.default_content

找到解决方案the selenium docs非常有用,以及有关使用selenium webdriver处理iframe的this帖子。

相关问题