【问题标题】:Selenium IDE get stuck in popup window javascriptSelenium IDE 卡在弹出窗口 javascript
【发布时间】:2013-04-03 02:22:40
【问题描述】:

我是使用火狐的 selenium ide 的新手。我正在尝试测试一个弹出 html 的日历,我读了很多东西,主要是说我需要编写“javascrtip select element ...”命令,但无论我尝试了多少次,我都无法让它工作。这是网站http://demo.owncloud.org/index.php/apps/calendar。当您单击日历日期时,会出现一个弹出窗口,以便我选择日期和时间等。我不知道你是如何让弹出窗口在硒中工作的。我什至不知道你怎么理解它是 ajax 还是 javascript 这是关于选择日历的部分代码

<div id="notification" style="display:none;"></div>
<div id="controls">
    <form id="view">
        <input type="button" value="Week" id="oneweekview_radio" original-title="">
        <input type="button" value="Month" id="onemonthview_radio" original-title="" class="active">
        <input type="button" value="List" id="listview_radio" original-title="">&nbsp;&nbsp;
        <img id="loading" src="/core/img/loading.gif" style="display: none;">
    </form>
    <form id="choosecalendar">
        <!--<input type="button" id="today_input" value="Today"/>-->
        <button class="settings generalsettings" title="Settings"><img class="svg" src="/core/img/actions/settings.svg" alt="Settings"></button>
    </form>
    <form id="datecontrol">
        <input type="button" value="&nbsp;&lt;&nbsp;" id="datecontrol_left" original-title="">
        <input type="button" value="April 2013" id="datecontrol_date" original-title="" class="hasDatepicker">
        <input type="button" value="&nbsp;&gt;&nbsp;" id="datecontrol_right" original-title="">
    </form>
</div>
<div id="fullcalendar" class="fc"><div class="fc-content" style="position: relative; min-height: 1px;"><div class="fc-view fc-view-month fc-grid" style="position: relative;" unselectable="on"><table class="fc-border-separate" style="width:100%" cellspacing="0"><thead><tr class="fc-first fc-last"><th class="fc-mon fc-widget-header fc-first" style="width: 182px;">Mon.</th><th class="fc-tue fc-widget-header" style="width: 182px;">

我非常感谢任何提示或帮助。

这就是我所拥有的

    <tr>
    <td>open</td>
    <td>/index.php/apps/files</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>//ul[@id='apps']/li[3]/a/img</td>
    <td></td>
</tr>

---------Popup shows here ----------
<tr>
    <td>click</td>
    <td>id=category</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>id=ui-id-6</td>
    <td></td>
</tr>
<tr>
    <td>select</td>
    <td>name=calendar</td>
    <td>label=test</td>
</tr>
<tr>
    <td>select</td>
    <td>name=accessclass</td>
    <td>label=Bizalmas</td>
</tr>
<tr>
    <td>click</td>
    <td>id=from</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>link=12</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>id=to</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>link=27</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>id=submitNewEvent</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//body[@id='body-user']/div[9]/div/button</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>id=oneweekview_radio</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>id=oneweekview_radio</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>id=onemonthview_radio</td>
    <td></td>
</tr>

【问题讨论】:

    标签: javascript html css ajax selenium


    【解决方案1】:

    这是一个日历,您可以使用 Selenium IDE 与之交互。尽管您还应该考虑使用 Selenium Grid 的 Selenium Webdriver,这将允许您在多个浏览器中测试您的代码。话虽如此,让您与此日历弹出窗口进行交互!

    我建议使用元素的 id(如果可用),当没有 id 或 id 是动态的时使用 xpath。

    对于没有 id 的元素,例如 Title 旁边的 input 元素,如下图所示,使用以下内容单击它的文本框。

    命令click

    目标//input[contains(@placeholder, 'Title of the Event')]

    上图的 Selenium IDE 的图像

    提示:使用Find 按钮查看您是否使用xpath 正确指定了元素。它将突出显示。

    对于大多数其他元素,您可以使用它们的 id

    命令'click' 目标id=fromtime

    我可以添加的最大提示是使用 FIREBUG!如果您使用的是 Selenium IDE,那么 Firebug 将为您提供极大的帮助。您可能已经在使用它,但这只是对遇到此问题的任何人的提示。

    【讨论】:

    • 非常感谢您的回答。那个目标到底是什么?还有我在哪里可以找到“查找”按钮? Firebug 是个大帮手:))
    • 目标位于 Selenium IDE 的 GUI 版本中。当您打开 FF 浏览器单击 Tools->Selenium IDE 时,您应该能够使用它。您还可以从那里打开当前的 IDE 测试。 Target 告诉 Selenium 你想与哪个元素交互。
    • 如果您不想使用 Selenium IDE GUI(不知道为什么不这样做),您可以在初始命令下方添加第二个 ,Selenium IDE 会识别为目标。在您粘贴的示例中,---Pop-up Shows up here--- id=category 是您的第一个目标。每个命令都需要一个目标。
    • 我收到此错误 [error] 元素 //input[contains(@placeholder, 'ui-dialog ui-widget ui-widget-content ui-corner-all ui-front ui-draggable ui -resizable')] 未找到
    • 这些是 xpath 术语。包含意味着属性占位符将至少在其中某处包含“az ese”。您可以指定更多或更少的占位符元素。您还可以使用任何其他属性,例如名称、ID、文本等。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签