私はセレン フレームワークを使用しており、id が head1、head2、head3 の 3 つの見出しタグの読み込みの完了をチェックしています。3 つの見出しタグすべての読み込みを確実にするために待機する合計待機時間は 12 秒です。 .3 つの見出しタグの読み込みは、1、2、3、4 秒のいずれかで発生する可能性があります。
ここで、コードの他の部分にジャンプできるように、3 つの見出しタグがすべて読み込まれているかどうかを確認するために、2 秒ごとに 12 秒ごとに定期的なチェックを行いたいと考えています。私はいくつかのコードを試しましたが、私の要件を満たす正確なコードを理解することができません.
以下のコードには、12 秒まで 2 秒ごとに 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>