我怎样才能切换到动态变化的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_')]"))
这应该有效。
我需要在动态变化的 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_')]"))
这应该有效。