Java 如何确定框架是否存在

Java 如何确定框架是否存在,java,selenium,Java,Selenium,在我的应用程序中,所有选项卡都是一个框架下的类别。我用过: driver.switchTo().frame((WebElement)By.name(“contents”); System.out.println(“选择了框架”); 验证帧是否存在,但我得到以下异常: >Exception in thread "main" java.lang.ClassCastException: org.openqa.selenium.By$ByName cannot be cast

在我的应用程序中,所有选项卡都是一个框架下的类别。我用过:

driver.switchTo().frame((WebElement)By.name(“contents”);
System.out.println(“选择了框架”);
验证帧是否存在,但我得到以下异常:

>Exception in thread "main" java.lang.ClassCastException:      
    org.openqa.selenium.By$ByName cannot be cast to org.openqa.selenium.WebElement
    at selenium_test.iebrowser.main(iebrowser.java:75)

如果html包含
iframe
或类似内容,则可以使用浏览器的deve窗口(F12)在
html
中搜索

对于此点击F12>在html源代码内单击>Ctrl+F进行搜索,然后键入您想要搜索的内容


此外,为了便于澄清,请验证
iframe
中的元素<代码>内容在我看来不是有效的
iframe
名称。提供相关html以进一步调查

您的错误表示您正试图从您的
By.name(“contents”)
网页元素
(网页元素)
。。。这当然是毫无意义的

根据,
.switchTo().frame()
具有以下签名之一:

WebDriver frame(int index);
WebDriver frame(String nameOrId);
WebDriver frame(WebElement frameElement);
您需要的是以下任一项:

driver.switchTo().frame("contents");  // uses the nameOrId
driver.switchTo().frame(driver.findElement(By.name("contents")));  // uses the frameElement