我尝试运行这段代码:
driver.switchTo().frame(driver.findElement(frameBy));
哪里 farmeBy.selector == #offer-carousel > div > div > div.item.popup.w-control-popup.active > div > div > div > iframe
我得到没有这样的元素异常
。
如果我在chrome检测工具中运行得到结果怎么可能:
$("#offer-carousel > div > div > div.item.popup.w-control-popup.active > div > div > div > iframe")
最佳答案
我猜你还没有指定访问元素的方式。
从您给出的代码片段来看,您一定是在尝试使用 cssselector 来定位元素。所以,代码可以这样写:
driver.switchTo().frame(driver.findElement(By.cssSelector(frameBy)));
否则,如果您有框架的名称/ID,则可以使用以下代码:
driver.switchTo().frame("name or id");
或者,您可以使用 iframe 的索引:
driver.switchTo().frame(0);
注意:以上代码只有在网页只有一个iframe的情况下才有效。如果有多个,相应地使用必要的索引。
关于java - selenium 找不到出现在我的浏览器中的 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26732509/