一直对IFRAME自动化一知半解。
以前Selenium的做法是:
// between step 4 and step 5
// remove selenium.selectFrame("relative=up");
driver.switchTo().defaultContent(); // you are now outside both frames
driver.switchTo().frame("cq-cf-frame");
// now continue step 6
driver.findElement(By.xpath("//button[text()='OK']")).click();
因此,感觉这个不是什么问题。只是以为海外用iframe的比例太小人家没做这方面的自动化功能研发。
另外,因为在ie下面可以使用legacy mode(Automation Anywhere)就囫囵吞枣直接做定位就完成。
昨天用Chrome做自动化,不巧Legacy mode在chrome下无效才想起要找资料找帮手了。。。
- 帮手说:
If its Cross Domain i-frame then it wont work just check whether its cross domain i-frame or not
- 去隔壁看了下他们的解决方案。
image.png
Link
这么看的话,大家都有类似问题需要克服。
貌似大家都找到了方法,自己拿sample尝试通常能够定位到Iframe里面的内容。
我一直有这个错觉大概是因为有不少国内应用选择了跨域地址作为iframe的src内容??
我的解法是,直接打开iframe里面src的地址。啊哈哈
这样做的坏处是如果碰到SSO之类比如某厂或金融就有可能瞎。。。












网友评论