Pra*_*nKS 49 java iframe selenium
我正在尝试访问下面的元素<form> <iFrame> <form> elements </form> </iFrame> </form>
.
你能帮助我访问这些'元素',我正在使用Selenium Webdriver和JAVA吗?
遇到的问题:能够到达目标页面(存在上述元素的位置),但我的代码无法识别这些元素.
XML结构概述:
<body>
<form action="https://abcd/efgh/" name="outerForm" method="post" target="iFrameTitle">
<iframe width="700" height="600" src="" title="Frame for Java Test" name="iFrameTitle" scrolling="auto" frameborder="0">
<form id="innerFormID" name="innerForm" action="/xxx/xxxx/yyyy/zzzz/" method="post" autocomplete="off">
<fieldset id="ncDetailsInner">
<div id="element1">
<label for="label1">
<abbr title="Required field">*</abbr></label>
<input name="label2" type="text" maxlength="30" id="cardHolder" value="" >
</div>
<div id="element2">
<label for="label3">Label3 <abbr title="Required field">*</abbr></label>
<div id="element3">
<label for="label4">Label4<abbr title="Required field">*</abbr></label>
<input id="label5" name="labelname5" type="text" maxlength="19" value="">
</div>
<div id="element4">
<label for="label6">Label6</label>
<input id="label7" name="labelname7" type="text" size="2" maxlength="2" value="" class="text disabled" disabled="">
</div>
</div>
</fieldset>
</form>
</iframe>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
代码提取:
WebDriverWait wait_iframe = new WebDriverWait(driver, 20000);
wait_iframe.until(ExpectedConditions.visibilityOfElementLocated((By.id("element2"))));
calling_function(sh1.getCell(col + 10, row).getContents(),
sh1.getCell(col + 11, row).getContents(),
sh1.getCell(col + 12, row).getContents(),
sh1.getCell(col + 14, row).getContents());
public static void called_funciton(String string1, String string2,
String string3, String string4) {
driver.findElement(By.name("Element1 Name")).sendKeys(string1);
driver.findElement(By.id("Element2 ID")).sendKeys(string2);
driver.findElement(By.id("Element3 ID")).sendKeys(string3);
driver.findElement(By.id("Element4 ID")).sendKeys(string4);
driver.findElement(By.name("submitButton")).click();
}
Run Code Online (Sandbox Code Playgroud)
如果需要任何进一步的细节,请告诉我!
SDE*_*DET 75
在尝试搜索iframe中的元素之前,您必须将Selenium焦点切换到iframe.
在搜索iframe中的元素之前尝试此操作:
driver.switchTo().frame(driver.findElement(By.name("iFrameTitle")));
Run Code Online (Sandbox Code Playgroud)
小智 46
使用iframe时,首先必须切换到iframe,然后才能选择该iframe的元素
你可以使用:
driver.switchTo().frame(driver.findElement(By.id("frameId")));
//do your stuff
driver.switchTo().defaultContent();
Run Code Online (Sandbox Code Playgroud)
如果您的frameId是动态的,并且您只有一个iframe,则可以使用以下内容:
driver.switchTo().frame(driver.findElement(By.tagName("iframe")));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
102468 次 |
最近记录: |