selenium isVisible方法无法按预期工作

时间:2013-08-07 18:10:11

标签: selenium

我正在打开此页http://www.ebay.com/itm/Apple-iPhone-5-16GB-White-Silver-Factory-Unlocked-/151097083750?pt=Cell_Phones&hash=item232e168766

并检查蓝色色带是否可见,如图像enter image description here

中所述

这是我的测试

<tr>
    <td>open</td>
    <td>/itm/Apple-iPhone-5-16GB-White-Silver-Factory-Unlocked-/151097083750?pt=Cell_Phones&amp;hash=item232e168766</td>
    <td></td>
</tr>
<tr>
    <td>isVisible</td>
    <td>//div[@class='vi-notify-msg']</td>
    <td></td>
</tr>

并期待它失败,但令人惊讶的是它每次都过去了......我在这里缺少什么?

修改

我希望测试失败,因为功能区在加载页面后显示时间并且在功能区可见之前执行命令isVisible。因此它应该失败吗?

1 个答案:

答案 0 :(得分:4)

如果查看HTML,则在页面加载时元素就在那里。在页面加载完成后,它只被设置为淡入淡出,但从HTML的角度来看,它在整个页面加载时“可见”:

页面加载时:

<div id="vi_notification" class="vi-notify-cmp" style="top:25%;">
    <div class="vi-notify-container vi-notify-shadow">
        <div class="vi-notify-icon vi-notify-icon-img"></div>
        <div class="vi-notify-msg">28 people are viewing this item per hour.</div>
        <div class="vi-notify-close">
            <button id="vi_notification_cls_btn" class="vi-notify-   close-btn">x</button>
        </div>
    </div>
</div>

只有在淡出后,样式才会变为显示:无

<div id="vi_notification" class="vi-notify-cmp" style="top: 25%; left: 10px; display: none;">
    <div class="vi-notify-container vi-notify-shadow">
        <div class="vi-notify-icon vi-notify-icon-img"></div>
    <div class="vi-notify-msg">28 people are viewing this item per hour.</div>
    <div class="vi-notify-close">
            <button id="vi_notification_cls_btn" class="vi-notify-close-btn">x</button>
        </div>
    </div>
</div>

如果您在使用Chrome开发人员工具栏加载时查看该元素,您会看到它“可见”的位置,但样式更新会慢慢淡化它,以便我们的人眼可以看到它。

这意味着当页面加载/加载时,元素将返回显示的内容。淡出后,我希望显示为false,因为父div上的样式更改为display:none。