我正在使用 selenium 框架,我正在检查三个标题标签的加载是否完成,ID 为 head1、head2、head3。我要等待以确保所有三个标题标签的加载的总等待时间为 12 秒. 三个标题标签的加载可以在任何时间 1,2,3,4... 秒内发生。
现在我想每隔 2 秒到 12 秒进行一次定期检查,以检查是否所有三个标题标签都已加载,以便我可以跳转到代码的其他部分。我尝试了很少的代码,但无法确定满足我要求的确切代码。
下面的代码包含等待标题标签被加载,它每 2 秒到 12 秒检查一次 h1 标签。
硒代码
WebDriver driver = new FirefoxDriver();
driver.get("http://URL.com/Sample.jsp");
driver.manage().window().maximize();
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(12, TimeUnit.SECONDS)
.pollingEvery(2, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("h1")));
if((driver.findElement(By.id("h1")).getText()).length() >0)
System.out.println("Element Loaded");
else
System.out.println("Element yet to be Loaded");
html代码
<script type="text/javascript">
myFunction();
function myFunction()
{
setTimeout(function(){populateDiv1();},3000);
setTimeout(function(){populateDiv2();},6000);
setTimeout(function(){populateDiv3();},9000);
}
function populateDiv1()
{
document.getElementById('div1').innerHTML = "<h1 id='head1'>Div1 Loaded</h1>";
}
function populateDiv2()
{
document.getElementById('div2').innerHTML = "<h1 id='head2'>Div2 Loaded</h1>";
}
function populateDiv3()
{
document.getElementById('div3').innerHTML = "<h1 id='head3'>Div3 Loaded</h1>";
}
</script>
</head>
<body>
<div id="div1">
</div>
<div id="div2">
</div>
<div id="div3">
</div>
</body>