Webdriver:无法在嵌套的iframe,框架集和框架内输入值

时间:2016-05-12 06:39:27

标签: java selenium selenium-webdriver

我使用selenium和java开发脚本,并且因为无法在框架中输入值而面临问题。

请帮助我。

HTML snippet:

<html>
<head>
<frameset>
<frame name ='test'...>
<html>
<head>
<body>
<form>
<div>
     <iframe name ='test1'..>
	<html>
	<head>
	    <frameset name='MainContainer'..>
		   <frame name ='General' ..>
			<div> .....</div>
		   <frame name ='GlobalOptions' ..>
			<input name="scr" type="textbox" size="9" maxLength="8"/>
		  <frameset name='Container'..>
			<frame name ='Gen' ..>
			<div> .....</div>
			<frame name ='Glo' ..>
			<div> .....</div>
</div>
</form>
</body>
...
</html>

4 个答案:

答案 0 :(得分:1)

你有这么复杂的框架结构。我认为最好使用JavascriptExecutor。试试这段代码:

((JavascriptExecutor) driver).executeScript("document.getElementsByName('scr').item(0).value = 'new text';");

答案 1 :(得分:0)

您必须先导航到框架。

driver.switchTo().frame(driver.findElement(By.name("test1")));
driver.switchTo().frame(driver.findElement(By.name("MainContainer")));
driver.switchTo().frame(driver.findElement(By.name("General")));
driver.switchTo().frame(driver.findElement(By.name("GlobalOptions")));
driver.findElement(By.name("scr")).sendKeys("CART");

答案 2 :(得分:0)

使用以下代码切换框架:

driver.switchTo().frame("ur frame name");

答案 3 :(得分:0)

我花了很长时间后得到了解决方案。我们需要从一个帧切换到另一个帧,就像我想在General帧中输入一些值然后脚本一样,如driver.switchTo()。frame(“test”)。switchTo()。frame(“test1”)。switchTo ().frame( “通用”);