我使用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>
答案 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( “通用”);