![子框架具有动态名称/ ID ] [1]
浏览器-IE8
我必须在第二个子iframe中找到一个提示框。
父iframe具有固定的id。能够在其中找到元素
使用driver.switchTo()。frame(0)
第一个子iframe具有动态名称/ ID。
snprintf
。只有最后一部分更改.i.e。 cframe_ms_id59
我能够使用id59
找到这个元素
driver.findElement(By.xpath(“// iframe [contains(@id,'cframe_ms']”))
但是我的提示框有一个文本框位于第二个孩子iframe (绿色)****,其中包含动态名称/ id。**我无法进入此内部iframe 并且无法在其中找到任何元素。
xpath
以下是HTML代码结构 -
Plz suggest some solution
答案 0 :(得分:1)
我觉得它对你有用。 在输入此代码行之前从子框架中获取xpath -
driver.switchTo()框架(1);
而不是切换到子框架,因此您可以轻松获得子框架元素的xpath或class / id。
返回默认帧类型此代码行 -
driver.switchTo()defaultContent();
你的屏幕截图在哪里?
答案 1 :(得分:0)
查看HTML,您似乎在iframe中的iframe中包含iframe,其中包含您要查找的输入。为此,您需要按顺序切换到帧。请参阅下面的C#代码。
var textbox = driver.SwitchTo()
.Frame("adviseDesktop") //control in frame with id="adviseDesktop"
.SwitchTo()
.Frame(1) //control in frame with id="cframe_ms_id54"
.FindElement(By.Id("balance_val")); //input with id="balance_val"
完成该帧中的操作后,您需要切换到默认内容。
//control in frame with id="cframe_ms_id54"
_driver.SwitchTo()
.ParentFrame() //control in frame with id="adviseDesktop"
.SwitchTo()
.DefaultContent(); //control in topmost body of the document