我试图在selenium webdriver中检测具有动态目标的帧。
在selenium IDE中,我获得了类似命令“selectframe
”,Target="CitrixMainFrameWI_hghjghjhj355"
的详细信息,在目标下拉列表中没有其他值,
我尝试使用命令
driver.switchto().frame("CitrixMainFrameWI_hghjghjhj355")
。但是这个目标值是动态生成的,所以我得到了错误。
能否请你为我提出任何解决方案
答案 0 :(得分:0)
使用frame(index)
或通过命名框架并仅搜索CitrixMainFrame来尝试
(contains("CitrixMainFrame"
)。
此链接中的更多详细信息: http://joychester.blogspot.com/2010/09/switch-frame-and-windows-sample-code.html
答案 1 :(得分:0)
使用此:
//首先找到框架。
WebElement element = driver.findElement(By.cssSelector(“div [id ^ ='CitrixMainFrameWI _']”));
// id ^表示id以给定值开头。
//你没有指定标签,所以我假设为div标签。根据你的代码改变它。
。driver.switchto()帧(元素);
答案 2 :(得分:0)
String expectedFrameID="abc";
List<WebElement> lst=d.findElements(By.tagName("iframe"));
System.out.println(lst.size());
int flag=0;
for(int i=0;i<lst.size();i++){
String actualFrameID=lst.get(i).getAttribute("id");
System.out.println(lst.get(i).getAttribute("id"));
if(expectedFrameID.equals(actualFrameID)){
flag=1;
break;
}
}
if(flag==1){//perform operation on frame}