0

我尝试过使用以下功能

{
      maxInstances: 1,
      browserName: '',
      appiumVersion: '1.18.2',
      platformName: 'android',
      platformVersion: '10.0',
      deviceName: 'device',
      webviewConnectTimeout: '90000',
      chromeOptions: {args: ['--windowTypes=webview']},
      safariLogAllCommunication: true,
      enableWebviewDetailsCollection: true,
      ensureWebviewsHavePages: true,
      showChromedriverLog: true,
      app: './android/app/build/outputs/apk/',
      noReset: true,
      autoWebview: true,
}

但仍然无法获取 webview url。下面是我的代码片段

let contexts = driver.getContexts();
console.log(contexts);
driver.switchContext('WEBVIEW_be.belgacom.hello');
console.log(driver.getPageSource());
console.log(driver.getUrl());
4

1 回答 1

0

如果您想在 android 的 chrome 应用程序中打开 Web 应用程序/网站,则意味着 WebView,这些是强制性功能:

{'platformName': 'Android,'udid': YOUR DEVICE UDID, 
'appActivity': 'com.google.android.apps.chrome.Main', 
'appPackage': 'com.android.chrome',
'chromedriverExecutable': PATH OF CHROME DRIVER, 
'deviceName': ANY NAME,'chromeOptions': {'w3c': False},'autoGrantPermissions': True}

如果在 chrome 移动设备上执行操作,您应该切换到 WEB_VIEW。

语法在 Python 中:

driver.switch_to.context['NATIVE_APP]   #appium chrome driver
driver.switch_to.context['WEB_VIEW_chrome']    # selenium chrome driver

这是我关于上下文切换的完整答案: https ://stackoverflow.com/a/62284044/7302505

回复评论:

from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--incognito")
于 2021-10-28T07:44:04.197 回答