我正在尝试创建一个测试,该测试从一个选项卡开始,然后打开另一个选项卡,复制页面内容,然后返回到第一个选项卡并将剪贴板的内容粘贴到文本字段中。
我遇到的问题是当它切换到新标签时,它失败并出现以下错误:
SELECT * FROM COLOUR WHERE ID = '1'
INTO `TABLE_2`;
这是我的测试代码:
Failed: Error while waiting for Protractor to sync with the page: "window.angular is undefined.
只是想知道如何才能实现这一目标。我确实尝试从使用fit('Text Card - Copied from another webpage', () => {
const EC = protractor.ExpectedConditions
listView.newButton.click()
stories.createStory(storyConfigNewTextCard)
const textCard: ITextCardParts = {
title: 'Copy and Paste',
copyPaste: true,
}
// Open a second tab to yahoo.com
browser.driver.executeScript(function() {
(function(a: HTMLAnchorElement) {
document.body.appendChild(a);
a.setAttribute('href', 'https://en.wikipedia.org/wiki/Artemis')
a.dispatchEvent((function(e: MouseEvent) {
e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null)
return e
}(document.createEvent('MouseEvents'))))}(document.createElement('a')))
})
// Switch to the second tab and copy the page to paste into the text field
browser.getAllWindowHandles().then((handles) => {
const secondWindowHandle = handles[1]
const firstWindowHandle = handles[0]
browser.switchTo().window(secondWindowHandle).then(() => {
browser.wait(() => {
browser.ignoreSynchronization = true
return EC.visibilityOf(element(by.id('firstHeading')))
}, 3000, 'Could Not Find the Correct Page')
$('body').click()
// Select all web page
$('body').sendKeys(protractor.Key.chord(protractor.Key.CONTROL, 'a'))
// Copy the web page
$('body').sendKeys(protractor.Key.chord(protractor.Key.CONTROL, 'c'))
})
// switch back to first tab
browser.switchTo().window(firstWindowHandle).then(() => {
text.createTextCard(textCard)
})
})
})
切换到protractor.Key.chord()
并得到完全相同的错误。
答案 0 :(得分:1)
感谢@wswebcreation这个简单的解决方案。我只需要将browser.ignoreSynchronization = true
移到我的切换之前。