Я использую Browserstack для тестирования E2E, теперь я столкнулся с проблемой, когда пытаюсь запустить сценарий мобильной автоматизации в сафари на Browserstack, когда я нажимаю кнопку, будет отображаться всплывающее диалоговое окно, которое приведет к открытию новой вкладки , в диалоговом окне отображается такое сообщение: «Этот сайт пытается открыть всплывающее окно», я должен закрыть его, и сценарий может продолжить выполнение.
Теперь проблема заключается в следующем: 1. Когда я нажимаю кнопку, которая запускает этот всплывающий диалог, в журнале всегда будет отображаться исключение: «Ошибка при выполнении действия протокола .clickElement (): ошибка Appium: неизвестная сторона сервера. при обработке команды произошла ошибка. Исходная ошибка: не получил ответа после 20 секунд. 2. Я могу использовать XPath, чтобы найти кнопку во всплывающем диалоговом окне и щелкнуть ее, чтобы закрыть диалоговое окно, но это займет несколько минут. Есть ли другой способ сделать эту операцию более эффективной?
const { client } = require('nightwatch-api')
const { Given, Then, When} = require('cucumber')
Given('open mobile 163 news', async function () {
await client.url('https://3g.163.com/news/article/EJN99AOF000189FH.html?clickfrom=index2018_news_newslist#offset=0')
})
When('choose share by QQ', async function () {
await client.waitForElementVisible('.sharelogo')
await client.click('.sharelogo')
})
Then('the popup should show', async function () {
await client.waitForElementVisible('.qzone')
await client.click('.qzone')
await client.setContext('NATIVE_APP')
await client.source(function(res){
console.log(res.value)
})
await client.useXpath()
await client.click('//*[@name="Allow"]')
await client.contexts(function(result) {
client.setContext(result.value[result.value.length - 1])
client.useCss()
})
})