无法使用Selenium webdriver Java切换到Gmail中的Iframe

时间:2017-05-22 08:52:36

标签: java selenium google-chrome-extension webdriver gmail

这是iframe注入Gmail,我无法切换到此框架,我们非常感谢任何帮助。

HTML代码:

<iframe src="chrome-extension://fcinnggknmdfkilogcndkgpojpfojeem/src/iframe.html" id="Hiver_iframe_content" style="width: 100%; height: 263px; position: absolute; top: 60px; z-index: 4; border: none; display: none;"></iframe>

我想做什么:

driver.switchTo().frame("Hiver_iframe_content");

过去几天工作得非常好.. !!

5 个答案:

答案 0 :(得分:0)

这不是切换帧的方式

driver.switchTo().frame("Hiver_iframe_content");

切换时必须传递webElement或框架索引

试试这个并告诉我

driver.switchTo().frame(driver.findElement(By.id("Hiver_iframe_content")));

OR

driver.switchTo().frame(0);  // 0 is index of frame

答案 1 :(得分:0)

您可以等待使用显式等待加载帧,如下所示。

WebDriverWait wait = new WebDriverWait(driver,90);         wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt( “Hiver_iframe_conten”));

试着让我知道。

谢谢, Murthi。小号

答案 2 :(得分:0)

尝试使用切换到框架WebElement,如下所示:

 driver.switchTo().frame(driver.findElement(By.cssSelector("iframe#Hiver_iframe_content")));

答案 3 :(得分:0)

出现随着Gmail新版登录发布谷歌发布了新版本的Chrome驱动程序,我通过升级我的chromedriver版本解决了我的问题

答案 4 :(得分:0)

我找到了一种切换到你提到的iframe的方法。事实上,没有一个iframe,但你需要切换两个iframe。请参阅以下代码:

driver.switchTo().defaultContent();//First switch to default content
driver.switchTo().frame("Hiver_iframe_content");//Switch to 1st iframe
driver.switchTo().frame("iframe_handler");//Switch to 2nd iframe 

P.s-此代码现在适用于我们的自动化,我们可以从iframe本身访问v2: - )