Browserstack を使用して E2E テストを行っていますが、Browserstack のサファリでモバイル自動化スクリプトを実行しようとすると問題が発生しました。ボタンをクリックするとポップアップ ダイアログが表示され、新しいタブが開きます。 、ダイアログに次のようなメッセージが表示されます:「このサイトはポップアップウィンドウを開こうとしています」、閉じなければならず、スクリプトは実行を続けることができます。
問題は次のとおりです: 1. このポップアップ ダイアログをトリガーするボタンをクリックすると、ログに常に例外が表示されます: 'Error while running .clickElement() protocol action: Appium error: An unknown server-sideコマンドの処理中にエラーが発生しました。元のエラー: 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()
})
})