【发布时间】:2016-01-15 04:34:44
【问题描述】:
当我点击一个链接时,会打开一个弹出窗口,我可以在其中填写一些字段。但是,此弹出窗口包含一个 Iframe,其中包含我要在测试中使用的字段。问题是我似乎无法切换到 iFrame 以访问字段。
我首先尝试了以下方法,但这会导致 (org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"/html/body/iframe" }):
driver.switchTo().frame(driver.findElement(By.xpath("/html/body/iframe")));
然后我尝试了以下方法,这似乎通过了 iFrame 但导致 (org.openqa.selenium.TimeoutException: Timed out after 15 seconds waiting for element to be clickable: By.id: //div[@class= 'actionbutton-content unselectable']) 和 (NoSuchElementException: Unable to locate element: {"method":"id","selector":"//div[@class='actionbutton-content unselectable']"}):
driver.switchTo().frame(0);
wait.until(ExpectedConditions.elementToBeClickable(By.id("//div[@class='actionbutton-content unselectable']")));
这是页面源代码的第一部分:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Page title</title>
<script src="scripts/JQuery/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
script here....
</script>
</head>
<body MS_POSITIONING="GridLayout" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0">
<input type="hidden" id="newxObjectID"> <input type="hidden" id="newxObjectName"/>
<iframe height="100%" width="100%" frameborder="0" scrolling="no" src="fxeditobject.aspx?function=showobjectfields&key=0x3928x0x60937x&viewid=&callerwindow=true&fieldDefId=0&defid=3928" >
#document
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html webdriver="true">
<head></head>
<body id="PageBody" onload="" etc. etc. etc. >
**Fields I'm looking for are somewhere in this area**
</iframe>
</body>
【问题讨论】:
-
尝试向 iframe 添加 id
-
谢谢,但这不是我的产品,所以很遗憾不是一个选择:-(
-
弹出窗口是否在单独的浏览器窗口中打开?或者您得到的弹出窗口是一种 jquery 类型的模态对话框?
-
是的,弹出窗口正在打开,看起来像是一个单独的浏览器窗口。
标签: java eclipse selenium iframe