硒不能识别帧

硒不能识别帧

问题描述:

一切工作正常,直到该网站刊登了更新......现在我不能再访问框架...说,它无法找到元素硒不能识别帧

<iframe width="100%" src="Paginas/CobrancaBSB/titulos.asp" style="border: 0px; height: 316px;" frameborder="0" scrolling="no" scollbar="no" id="iframePrinc" name="iframePrinc" onload="iframeLoad();" __idm_frm__="690"></iframe> 

检查元素:

Inspect element

我的代码:

driver.SwitchTo().Frame(driver.FindElement(By.Name("iframePrinc"))); 

框架层次:

Body 
    |____ iframe = Principal 
     |____ frameSet = frmSet 
      |____ frame = Corpo 
       |____frame = iframePrinc 

该错误在截图中看起来相当明显。您正在查看的iframe位于另一个框架(位于frameSet内)中,并且您正试图直接切换该框架而不切换到其父框架。您需要根据层次结构进行切换。使用下面

driver.SwitchTo().Frame(driver.FindElement(By.Name("<parentFrameNameHere>"))); 
driver.SwitchTo().Frame(driver.FindElement(By.Name("iframePrinc"))); 

Frame in frame

+0

出于好奇,你怎么能告诉帧是另一个框架内? –

+1

请参阅回答 –

+0

中的更新屏幕截图我已经尝试过这种情况,以防万一我切换到默认内容,然后尝试输入第一帧...但即使如此,他仍然无法在页面上找到该元素。我更新了框架层次结构的帖子 –