2015-01-15 182 views
1

Im新增量角器e2e测试。 用量角器写茉莉花测试用例。 我在html文件中有两个按钮。我想选择特定的按钮(在begin.html文件中的按钮)量角器:无法点击按钮

element(by.id('gotest'))。click();没有工作 by.linkUiSref('about-you');没有工作

上的按钮执行某些事件应该导航到下一个页面(约-你)

请帮我

Text.html

<div class="button"> 
     <a ui-sref="begin"> 
      <button class="green">Text</button> 
     </a> 
    </div> 

    <ng-include src="'../begin.html'" class="hidden"></ng-include> 

begin.html

<div class="button"> 
     <button class="green" id="gotest" ui-sref="about-you">Start</button> 
    </div> 
+0

我假设你在begin.html当你试图点击右键? (即不确定Text.html要做什么)。另外,你的意思是“没有工作”?没有任何事情发生或错误? – hankduan

+0

是的,您对begin.html(点击事件发生在这里)是正确的。 – mrr

+0

是的,您在begin.html(点击事件发生在这里)时是正确的。当我们在移动设备上启动应用程序时,首先显示text.html,然后显示begin.html。但是我们在桌面上访问相同的应用程序begin.html将包含在text.html中。我得到以下异常“消息: 错误:超时等待量角器11秒后与页面同步 aq.md ......”我也试过在配置文件中使用allscriptsTimeouts,但它没有奏效。 – mrr

回答

3

尝试:

element(by.buttonText('Start')).click(); 

否则请发送你所拥有的错误。

+0

感谢您的回复,在配置文件中,我给出了allscripts = 100000毫秒,所以现在我没有得到11秒的错误后超时,但我看到一个不同的错误“Jasmine规范超时重置WebDriver控制流 最后一个活动任务是: [object Object] .webdriver.WebDriver.schedule(C:\ Users \ pm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ iver \ webdriver.js:345: 15) at [object Object] .Protractor.executeAsyncScript_(C:\ Users \ pm \ node_modules \ protractor \ lib \ protractor.js:1141:26) at [object Object] .Protractor.waitForAngula – mrr

+0

也即时获取我的元素你上面提到的方式 – mrr

+0

元素点击是否完成 –

5

量角器工作快速且异步。所以,即使在页面准备就绪之前,您的按钮点击可能会被执行,因此您会收到错误。要解决此问题,您可以先尝试在量角器中使用等待函数来查找元素,然后使用等待返回的承诺,您可以单击该按钮。

下面的代码可以帮助你 -

var elementToClick = $('#gotest'); 
browser.wait(protractor.ExpectedConditions.elementToBeClickable(elementToClick), 10000) 
.then (function() { 
    elementToClick.click(); 
}); 

希望这会解决你的问题。