点击链接失败但selenium没有报告

时间:2010-09-24 12:06:03

标签: jquery selenium

基本上我们有使用span

的链接
$('#desc').click() {
//do somehting
}

<span id="desc"> This is Link </span>

这个<span>看起来像风格的链接。

现在,在selenium我有点击链接的代码。

但是,由于某些javascript会在页面加载时加载,因此需要时间才能使这些链接可点击。

所以点击失败,但是selenium没有报告。 (我的意思是它不会只点击元素。)

如何在点击selenium中的链接之前确保onclick事件已绑定?

3 个答案:

答案 0 :(得分:1)

问题似乎是链接看起来可点击之前可以点击(或者,至少在点击它之前做了一些有用的事情)。因此,我建议为所有想要看起来像链接的范围提供一个类:

<span class="link_span">...</span>

并且具有使它们看起来像链接的风格:

link_like {
text-decoration: underline;
/* whatever else */
}

然后在加载窗口后将类应用于link_span,这在$(document).ready()

之后出现了一段时间
$(window).load(
    function() {
        $('.link_span').each(
            function(){
                $(this).addClass('link_like');
            }
        );
    }
);

重点是span s

显然,最简单的解决方案是使用真正的超链接,但我认为你已经将这种可能性打折了。

答案 1 :(得分:0)

在你的问题中,$('desc').click() { }什么都不做,你必须做类似

的事情
<span id="myid" class="myclass"> This is Link </span>

$('span#myid').click(function() { ... });
      //or 
$('#myid').click(function() { .... });
      // or
$('.myclass').click(function() { ..... });

请参阅 .selectors()

答案 2 :(得分:0)

waitFor...家庭可能适合您的需要。

例如,如果在加载java脚本后确定元素存在, 使用:waitForElementPresent(locator)