Java iFrame没有显示
有人能帮我解决以下问题吗 拥有一个iframe,并通过xPath正确找到它Java iFrame没有显示,java,iframe,webdriver,Java,Iframe,Webdriver,有人能帮我解决以下问题吗 拥有一个iframe,并通过xPath正确找到它 div[@id='sidebar']/div[@class='banner-300-250']//iframe 以下是源代码: <div class="banner-300-250"> <script type="text/javascript">if(!window.AdButler){(function(){var s=document.createElement("script");s
div[@id='sidebar']/div[@class='banner-300-250']//iframe
以下是源代码:
<div class="banner-300-250">
<script type="text/javascript">if(!window.AdButler){(function(){var s=document.createElement("script");s.async=true;s.type="text/javascript"; s.src='https://servedbyadbutler.com/app.js';var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(s,n);}());}</script>
<script type="text/javascript">var AdButler=AdButler||{}; AdButler.ads=AdButler.ads||[];var abkw=window.abkw||'';var plc177931=window.plc177931||0;document.write('<'+'div id="placement_177931_'+plc177931+'"></'+'div>'); AdButler.ads.push({handler:function(opt){AdButler.register(166212,177931,[300,250],'placement_177931_'+opt.place,opt);},opt:{place:plc177931++,keywords:abkw,domain:'servedbyadbutler.com'}});</script> <script async="" type="text/javascript" src="https://servedbyadbutler.com/adserve/;ID=166212;size=300x250;setID=177931;type=async;domid=placement_177931_0;place=0;pid=894989;sw=1920;sh=1080;spr=1;rnd=894989;kw=sport"></script><div id="placement_177931_0"><iframe id="placement_177931_0_iframe" frameborder="0" scrolling="no" height="250" width="300"></iframe></div>
</div>
<iframe id="placement_177931_0_iframe" frameborder="0" scrolling="no" height="250" width="300"></iframe>
.
.
.
<a href="//wlpinnaclesports.adsrv.eacdn.com/C.ashx?btag=a_773b_3429c_&affid=4609&siteid=773&adid=3429&c=&MediaID=3429&IsAd=1& <script src="//pinnaclesports.host.bannerflow.com/bf_ph_642.js?btag=a_773b_3429" charset="utf-8" type="text/javascript"> </script>
</a>
如果(!window.AdButler){(function(){var s=document.createElement(“脚本”);s.async=true;s.type=“text/javascript”;s.src=”https://servedbyadbutler.com/app.js“;var n=document.getElementsByTagName(“脚本”)[0];n.parentNode.insertBefore(s,n);}();}”
var AdButler=AdButler | |{};AdButler.ads=AdButler.ads | |[];var abkw=window.abkw | |“”;变量plc177931=window.plc177931 | | 0;文件。写(“”);AdButler.ads.push({handler:function(opt){AdButler.register(166212177931[300250],'placement_177931_'+opt.place,opt);},opt:{place:plc177931++,关键字:abkw,域:'servedbyadbutler.com'});
.
.
.
使用此代码进行了尝试,当显示iframe时,它可以工作,但在某些页面上它不存在,并且在这种情况下,我得到了中断测试(在下面的代码中没有添加简单for循环,但它是编写的,因此在下面的代码中是计数器(I):
List<WebElement> bookieBanners = driver.findElements(By.xpath("//div[@id='sidebar']/div[@class='banner-300-250']"));
System.out.println(bookieBanners.);
if (bookieBanners.get(i).isDisplayed()) {
System.out.println(bookieBanners);
bookieBanners.get(i).click();
BaseTest.sleepSeconds(2);
switchToLastOpenedWindow(driver);
System.out.println("Opened is page: " + driver.getCurrentUrl());
BaseTest.closePrevWindows(driver);
} else {
System.out.println("There is no banner for bookies");
continue;
}
List bookiebaners=driver.findElements(By.xpath(//div[@id='sidebar']]/div[@class='banner-300-250']);
System.out.println(bookiebaners.);
if(bookiebaners.get(i).isDisplayed()){
System.out.println(书籍横幅);
bookiebaners.get(i).单击();
基本测试。睡眠秒(2);
切换至Astopenedwindow(司机);
System.out.println(“打开的是页面:+driver.getCurrentUrl());
BaseTest.关闭前车窗(驱动程序);
}否则{
System.out.println(“赌场没有横幅”);
继续;
}
提前感谢。经过一番努力,解决方案如下:
List<WebElement> subMenuElements = driver.findElements(By.xpath(Found Elements));
if (subMenuElements.size() > 0) {
for (int p = 0; p < subMenuElements.size(); p++) {
if (p < 9) {
System.out.println("");
System.out.println("******");
//Open in another tab that page
((JavascriptExecutor) driver).executeScript("$('a').attr('target', '_blank');");
subMenuElements.get(p).click();
BaseTest.sleepSeconds(3);
System.out.println("Checking banner on " + subMenuElements.get(p).getText());
System.out.println("Checking banner on " + driver.getCurrentUrl());
List<WebElement> bookieLinks = driver.findElements(By.xpath("Found inner iframe"));
System.out.println("Second banner:");
System.out.println("*****");
if ((bookieLinks.size() > 0)) {
WebElement bookieShown = driver.findElement(By.xpath("Banner is clickable at position 'banner-300-250']"));
bookieShown.click();
switchToLastOpenedWindow(driver);
BaseTest.sleepSeconds(3);
System.out.println(driver.getCurrentUrl());
System.out.println("Page title: " + driver.getTitle());
BaseTest.closePrevWindows(driver);
} else {
System.out.println("Banner not shown on current page");
BaseTest.closePrevWindows(driver);
}
List subnumelements=driver.findElements(By.xpath(找到的元素));
if(subnumelements.size()>0){
对于(int p=0;p0)){
WebElement bookieShown=driver.findElement(By.xpath(“可在位置‘Banner-300-250’】处单击横幅”);
bookieShown.click();
切换至Astopenedwindow(司机);
基本测试。睡眠秒(3);
System.out.println(driver.getCurrentUrl());
System.out.println(“页面标题:+driver.getTitle());
BaseTest.关闭前车窗(驱动程序);
}否则{
System.out.println(“当前页面未显示横幅”);
BaseTest.关闭前车窗(驱动程序);
}