0
他の要素がロードされてから5秒後に表示されるli
要素内にラップされたボタンがあります。この要素をクリックする必要がありますが、この要素にセレンを使用してアクセスすることはできません。Web要素がセレンで特定されていない
暗黙の待機、明示的な待機、流暢な待機を使用しています。 Seleniumは、TimeoutExceptionおよびNoSuchElementExceptionで終了する要素を識別することができません。
HTMLの要素:
<li class="wow zoomIn" data-wow-delay="1.0s" data-reactid=".0.0.0.1.5" style="visibility: visible; animation-delay: 1s; animation-name: zoomIn;">
<button class="pip-icon-new" data-role="none" title="PIP" data-reactid=".0.0.0.1.5.0"/>
<span class="mt10 col-xs-12" data-reactid=".0.0.0.1.5.1">PIP</span>
</li>
流暢待ち:
Wait wait = new FluentWait(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("button[data-reactid='.0.0.0.1.5.0']")));
明示待ち:
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='Home-page']/div[1]/ul/li[5]/button")));
myDynamicElement.click();
暗黙待ち:
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("span[class='mt10 col-xs-12']")));
何か不足していますか?
問題はあなたの選択である可能性があります。 By.cssSelector( "button [title = 'PIP']")で試してください。 – acikojevic
はiframe内にありますか? –
@acikojevicそれも試しました。それは動作していません。 – kaushik3993