量角器中的JavaScript
我必须使用量角器在iframe内自动单击下拉列表 Iframe:量角器中的JavaScript,javascript,iframe,protractor,Javascript,Iframe,Protractor,我必须使用量角器在iframe内自动单击下拉列表 Iframe: <iframe src="swagger-ui/index.html" frameborder="0" marginheight="0" marginwidth="0" width="100%" height="900" scrolling="auto" target="_top" class="ng-scope"> </iframe> 但不起作用。您正在滥用本例中根本不需要的execu
<iframe src="swagger-ui/index.html" frameborder="0" marginheight="0" marginwidth="0"
width="100%" height="900" scrolling="auto" target="_top" class="ng-scope">
</iframe>
但不起作用。您正在滥用本例中根本不需要的
executeScript()
函数。量角器(以及底层的Webdriver.js)允许您使用以下命令切换iFrame:
browser.driver.switchTo().frame(0)代码>
在大多数情况下,使用0
应返回页面上可见的第一个iframe,但如果有更多,则必须找到适当的索引号
切换后,您可以像平常一样找到元素。但完成后,必须使用browser.driver.switchTo().defaultContent()切换回默认窗口代码>对不起,我是新来的。我已经试过了,说defaultContent()不是函数。如果我将其删除并尝试,则在等待量角器与页面同步时会出现“错误”:“您需要发布更多的代码,以查看可能存在的问题。希望这足够了,browser.driver.switchTo().frame(0);元素(by.xpath(“//select[@='select_baseUrl']))。单击();browser.driver.switchTo.defaultContent();谢谢不幸的是,这还不足以说明发生了什么。您应该尝试使用switchTo()
方法更新您的问题,并公布执行此操作时出现的确切错误。另外,向我们展示更多您的测试文件会很有帮助。我添加了一个快照,谢谢。我解决了这个问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。browser.driver.switchTo().frame(0).然后(function(){console.log('now in fn1 SRC1');browser.driver.sleep(5000);browser.driver.findElement(by.id('select_baseUrl'))。click();console.log('now fn2 SRC1');browser.driver.switchTo().defaultContent(););既然我的回答解决了你的问题,你能接受吗?
<select id="select_baseUrl" name="select_baseUrl">
<option value="1">default (1)</option>
<option value="2">eventui (2)</option>
<option value="3">eventservice (3)</option>
</select>
var eeel = browser.executeScript("document.getElementByTagName('iframe')
.contentWindow.document.getElementById('select_baseUrl').click();");
browser.wait(eeel,200000);
console.log("Lv2");