На всякий случай, если кто-нибудь на моем месте ...
const { remote } = require('webdriverio');
(async () => {
const browser = await remote({
logLevel: 'trace',
capabilities: {
browserName: 'chrome'
}
})
await browser.url('https://duckduckgo.com/')
const inputElem = await browser.$('#search_form_input_homepage')
await inputElem.setValue('WebdriverIO')
const submitBtn = await browser.$('#search_button_homepage')
await submitBtn.click()
console.log(await browser.getTitle()) // outputs: "Title is: WebdriverIO (Software) at DuckDuckGo"
await browser.deleteSession()
})().catch((e) => console.error(e))
В ответе на эту часть вопроса:
"Что вызывает эти катастрофические отказы?"
Существует два файла журнала, которые могут помочь ответить на это:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.log
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen_service.log
(А также обычный журнал приложения, хотя это менее полезно),
В ответе на:
"Какие файлы находятся в очереди, чтобы быть сгенерированными?"
Обычный ответ - то, что это видно путем выполнения:
ngen.exe display
(Хотя в моем случае это только возвращается
NGEN Roots:
Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
)
От этого:
Сервис Оптимизации Времени выполнения.NET пытается повторить компиляцию блоков, когда он сталкивается с тем, чему он верит, случайные ошибки; примеры включают ошибки RPC, ошибки из памяти и т.д. Однако после того, как это попыталось скомпилировать тот же блок 20 раз и все еще не удалось сделать так, это производит сообщение выше и закрывается. Я вижу, что Вы уже попытались удалить Платформу.NET 2.0 от Вашей машины и переустановить ее, но что у Вас все еще есть эта ошибка. Я предполагаю, что попытка восстановить установку не помогает также. Можно ли возможно попытаться выполнить "ngen.exe ExecuteQueuedItems", сопровождаемый "Обновлением ngen.exe" от %WINDIR %\Microsoft.NET\Framework\v2.0.50727 \? Это попытается скомпилировать все блоки, которые еще не имеют никаких/актуальных 32-разрядных изображений NGen синхронно, не проходя сервис оптимизации. После того как команда обновления завершается, можно ли еще раз попытаться запустить сервис и проверить, чтобы видеть, получаете ли Вы все еще то же сообщение в системном журнале? Если эта проблема не будет характерна для сервиса, то я ожидаю, что Вы будете видеть ошибки компиляции в выводе командной строки также.
У меня была такая же проблема (установка Asp MVC 1.0). В поисках ответа я заметил блог Haacked , где были объяснены некоторые причины. Потратив 2 часа на попытки решить эту проблему, я был так разочарован, что использовал
ngen /delete *
. Это сработало. Но я не уверен, что это не приведет к небольшой катастрофе; /
Может быть, это поможет ..