Как закрыть всплывающий диалог сафари при запуске скрипта автоматизации с nightwatch на BrowserStack?

Я использую 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()
    })
})

person shane    schedule 10.07.2019    source источник


Ответы (1)


Вы пробовали добавить возможность nativeWebTap и установить для нее значение true в тестовых сценариях?

person N3M    schedule 10.07.2019
comment
Могу ли я добавить этот «nativeWebTap» в желаемые возможности nightwatch.conf.js? Я пробую, но все еще нужно несколько минут для выполнения операции щелчка, мой nightwatch.conf.js выглядит так: chrome_bs: {желаемые возможности: {'browserstack. user ':' xxx ',' browserstack.key ':' xxx ',' os ':' Windows ',' os_version ':' 10 ',' browser ':' Chrome ',' browser_version ': '70 .0', ' разрешение ':' 1920x1080 ',' browserstack.debug ':' true ',' browserstack.networkLogs ':' true ',' nativeWebTap ':' true '}} - person shane; 11.07.2019