如何检测硒网络驱动程序中的动态框架?

时间:2012-02-21 11:28:23

标签: selenium

我试图在selenium webdriver中检测具有动态目标的帧。 在selenium IDE中,我获得了类似命令“selectframe”,Target="CitrixMainFrameWI_hghjghjhj355"的详细信息,在目标下拉列表中没有其他值, 我尝试使用命令

检测此帧

driver.switchto().frame("CitrixMainFrameWI_hghjghjhj355")。但是这个目标值是动态生成的,所以我得到了错误。 能否请你为我提出任何解决方案

3 个答案:

答案 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}