이 활성화 기다리고 : 지금 마이그레이션하려고은/
filterElementsByText (elemList, comparator, locator) {
return elemList.filter((elem) => {
let searchTarget = locator ? elem.element(locator) : elem
return searchTarget.getText().then((text) => text === comparator)
})
}
내 제어 흐름을 꺼야하는 async/await을 사용하여 repo합니다.
이 전환은 대부분 성공했지만 위의 기능에 문제가 있습니다. 내 자신의 응용 프로그램에 대한 더 높은 빈도로 발생하지만
Failed: java.net.ConnectException: Connection refused: connect
내가, 내가 https://angularjs.org에 대해 작성한 테스트 케이스와 함께이 문제를 재현 할 수 있어요 : 일시적으로,이 오류를보고하고있다. 하지만, 일화가 보인다는 실행의 5 ~ 10 %에서 발생하는 것으로 보인다 단순화 된 테스트 케이스
SELENIUM_PROMISE_MANAGER: false
(:
let todoList = element.all(by.repeater('todo in todoList.todos'))
let todoText = element(by.model('todoList.todoText'))
let todoSubmit = element(by.css('[value="add"]'))
let addItem = async (itemLabel = 'write first protractor test') => {
await todoText.sendKeys(itemLabel)
return todoSubmit.click()
}
let filterElementsByText = (elemList, comparator, locator) => {
return elemList.filter((elem) => {
let searchTarget = locator ? elem.element(locator) : elem
return searchTarget.getText().then((text) => {
console.log(`Element text is: ${text}`)
return text === comparator
})
})
}
describe('filter should',() => {
beforeAll(async() => {
browser.ignoreSynchronization = true
await browser.get('https://angularjs.org')
for (let i = 0; i < 10; i++) {
await addItem(`item${i}`)
}
return addItem()
})
it('work', async() => {
let filteredElements = await filterElementsByText(todoList, 'write first protractor test')
return expect(filteredElements.length).toEqual(1)
})
})
이
는이 각도기의 conf의 파일에 설정 다음으로 실행되는지내 문제는 이것이 Webdriver의 버그처럼 느껴지지만 어떤 조건으로 인해 오류가 발생하는지 알 수 없으므로 진행 방법을 잘 모르겠습니다.
테스트에서 생성 된 항목의 수를 늘리는 경우 (종종 250 개 사용) 문제가 더 자주 발생할 수있는 것처럼 느껴지지만 그 또한 일화입니다. –
제어 흐름이 발생하지 않으면 이 코드는 아마도 어딘가에 있기 때문에 코드가 여러 약속을 동시에 해결하려고 할 때 이전 약속이 해결 될 때까지 기다려야 할 때입니다. 'filterElementsByText'를 loop 안에'map'이나'filter'가없는'await'을 써서 작성해보십시오. –
ElementArrayFinder.filter()를 사용하지 않고 필자 고유의 필터 함수를 작성하는 것이 효과가있는 것으로 보이며 좋은 해결 방법이지만이 오류의 성격을 이해하려고합니다. 당신이 묘사 한 여러 가지 약속의 상황이 실제로 여기에서 어떻게 일어날 지 알 수 있습니다. 그러나 그것이 어떻게 "연결이 거부되었습니다"라는 결과를 낳을까요? –