如何在Selenium中使用JQuery在h3中创建.delay函数?

时间:2015-05-15 05:08:00

标签: javascript jquery html css selenium

我试图点击' h3'包含两个' divs'所以我试图制作一个循环来完成它们,但它只打开第二个' div。

只是打开两个' divs'当我发出一个停止两者之间的应用程序的警报。它可以工作,但是我想在不必使用警报阻止应用程序的情况下这样做,因为我在Eclipse的Java项目中将它与Selenium一起使用。

我尝试使用.delay()函数进行此操作,但它不起作用。我把这里使用的代码放在这里:

$("#proveDiv > div > h3").each(function(i, obj){
      $(obj).delay(60000).fadeIn().click();
})

它只会打开第二个' div,但我希望测试通过两个' divs'而不只是其中一个。

我想知道是否有一些像延迟或睡眠这样的功能可以执行此任务但不会阻止应用程序。

任何帮助将不胜感激。 非常感谢你!

编辑:我也尝试使用setTimeout函数,但它也没有用。如果我做错了,请告诉我。

$("#proveDiv > div > h3").each( function(i) 
{
    setTimeout(function() 
    { 
       $(this).click()} , 10000)
    }  
)

1 个答案:

答案 0 :(得分:1)

假设您正在通过Selenium执行此Javascript并想要测试它。 如何逐个选择和点击它们

JavascriptExecutor driver = (JavascriptExecutor) webdriver;
driver.executeScript("$(`proveDiv > div > h3`).eq(0).click();");
TimeUnit.SECONDS.sleep(100); // or Thread.sleep(100);
driver.executeScript("$(`proveDiv > div > h3`).eq(1).click();");