2017-03-08 65 views
0

Snapshot我必须使用量角器自动点击iframe内的下拉菜单。JavaScript在量角器

的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> 

下拉:

<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"); 

但不工作。

+0

我解决了这个问题。 ................................ browser.driver.switchTo().frame(0).then(function() { \t \t \t的console.log( '现在fn1的SRC1内'); \t \t \t browser.driver.sleep(5000); browser.driver.findElement(by.id( 'select_baseUrl'))点击() ; \t \t \t的console.log( '现在FN2 SRC1'); \t \t \t browser.driver.switchTo()defaultContent(); \t \t}); –

回答

0

您滥用executeScript()函数,在这种情况下根本不需要这个函数。量角器(和底层Webdriver.js)允许您使用切换I帧:

browser.driver.switchTo().frame(0);

在大多数情况下使用

应该0返回第一个iframe中的页面上显示,但如果有更多的,你必须找到适当的索引号。

切换后,您可以像平常一样查找元素。但一旦你完成,你必须切换回默认窗口使用browser.driver.switchTo().defaultContent();

+0

我对此很陌生,对不起。我已经试过这个,说defaultContent()不是一个函数。如果我删除并尝试,我会得到“等待量角器与页面同步时出错:” –

+0

您需要发布更多代码以查看问题可能是什么。 (0); – codemon

+0

希望这个已经足够了,browser.driver.switchTo().frame(0); (); //选择[@ ='select_baseUrl']“))。click(); \t \t browser.driver.switchTo.defaultContent();谢谢 –