HTML代码
<a href="" ng-click="select()" tab-heading-transclude="" class="ng-binding">RESUME</a>
&#13;
问题: 点击我们的应用程序中的链接后,页面将在新选项卡中打开。在新页面中,我必须单击“简历”选项卡(它位于页面中间)。
我必须向下滚动并点击该标签,但无法点击。
我的代码:
browser.executeScript('window.scrollTo(0,250);');
element(by.partialLinkText("RESUME")).click();
请帮帮我
答案 0 :(得分:5)
在尝试单击元素之前切换到新选项卡。稍后,使用量角器中的ExpectedConditions
实例和elementToBeClickable()
函数等待元素存在并处于可单击状态。一旦处于可点击状态,然后执行click()
操作。但是,量角器中的click()
函数应自动滚动页面而无需滚动。这是怎样的 -
browser.getAllWindowHandles().then(function(handles){
browser.switchTo().window(handles[1]).then(function(){
var elem = element(by.partialLinkText("RESUME"));
browser.wait(protractor.ExpectedConditions.elementToBeClickable(elem), 10000)
.then(function(){
elem.click();
});
});
});
如果上面的代码仍然没有点击,那么在点击之前添加滚动行,然后解决函数返回的承诺。这是怎样的 -
var elem = element(by.partialLinkText("RESUME"));
browser.wait(protractor.ExpectedConditions.elementToBeClickable(elem), 10000)
.then(function(){
elem.getLocation().then(function(loc){
browser.executeScript('window.scrollTo('+loc.x+','+loc.y+');').then(function(){
elem.click();
});
});
});
希望它有所帮助。
答案 1 :(得分:2)
“点击我们的应用程序中的链接后,页面将在新标签中打开”.... 浏览器的新标签? 首先切换到新选项卡。然后单击该按钮。 尝试使用browser.getWindowHandles()。它会给你一套。