我怎样才能切换到动态变化的iframe

How can i switch to dynamically changing iframe

我需要在动态变化的 iframe 中点击图片。我尝试了以下,但没有运气。请帮忙!

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@id, 'div_adnxs_tag_')]")));

这是HTML

<div id="div_adnxs_tag_373.206035435957" style="">
<iframe width="728" height="90" frameborder="0" id="adnxs_tag_373.206035435957" name="adnxs_tag_373.206035435957" marginwidth="0" marginheight="0" scrolling="no" border="0" allowtransparency="true" style="visibility: visible; width: 728px; height: 90px;">
</iframe>
</div>

出现以下错误:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"//iframe[contains(@id, 'div_adnxs_tag_')]"}

您应该在 xpath 中使用 iframe 标记的 id。在您的情况下,您正在尝试使用 div 标记的 id 切换到框架。

By.xpath("//iframe[contains(@id, 'adnxs_tag_373')]"))

By.xpath("//iframe[contains(@id, 'adnxs_tag_')]"))

这应该有效。