【问题标题】:Not able to click on "OK" button of facebook popup in Appium iOS无法在 Appium iOS 中单击 facebook 弹出窗口的“确定”按钮
【发布时间】:2015-05-11 06:41:56
【问题描述】:

我正在尝试通过 Appium iOS 使用我的 iOS 应用程序自动注册 Facebook。当我单击 Facebook 注册按钮时,它会将我带到 Facebook 权限弹出窗口,我必须单击确定按钮,但我无法执行单击操作。我正在尝试以下代码:

driver.findElement(By.name("OK")).click();

它可以在 Android 中运行,但不能在 iOS 应用中运行。

屏幕截图可在以下网址获得 https://www.dropbox.com/s/e54qevzdosk8n3t/Screen%20Shot%202015-05-11%20at%2012.06.57%20pm.png?dl=0

【问题讨论】:

  • 尝试在 iOS 上使用 Xpath,它应该可以工作,从 appium inspector for iOS 获取 xpath
  • 我尝试使用以下 xpath 但它不起作用 "driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIAWebView[1]/ UIAButton[1]")).click();"
  • 您究竟为什么要尝试自动单击“确定”按钮?该页面的全部目的是让用户自愿给予您的权限。你不能自己去拿。这在 Android 上是可能的,这是一个安全漏洞。
  • 要完成 facebook 注册流程,必须点击 OK 按钮。那么在 iOS 应用中可以吗?
  • 是的,用户必须用他们的手指手动点击屏幕上的按钮。您不能只为他们自动接受它。这是公然违反信任的行为。

标签: ios facebook selenium selenium-webdriver appium


【解决方案1】:

当我们使用 Facebook 进行身份验证时,这意味着它使用“Oauth”进行身份验证。为此,可以使用三种身份验证方案

  1. Facebook 应用程序。
  2. 外部浏览器(即 safari)。
  3. 嵌入式浏览器。

如果是 Facebook 应用程序:Appuim 将不起作用,因为它会重定向到 Facebook 应用程序,并且 appium 无法使用相同的 appium 驱动程序处理您的应用程序和 Facebook 应用程序。

在外部浏览器的情况下(即 safari):同样,上述身份验证将在 safari 浏览器上进行,并且 appium 无法使用相同的 appium 驱动程序处理您的应用和 safari。

如果是嵌入式浏览器:Appium 可以处理 UI,因为 ui 是 Application 的一部分。

【讨论】:

  • 我们如何使用自定义应用处理 facebook 注册操作。
  • 您在上面的用例是什么?如果来自前两个,则无法从 appium 控制。至于自动化,它会检测需要 Apple Developer 配置文件的应用程序。我们无法从 Facebook 获取苹果开发者资料。如果可以的话欢迎。
  • 所以 iOS 是不可能的......你能给我推荐任何可以执行 facebook 活动的自动化工具吗?
  • 这是iOS自动化的一个局限,所有自动化工具都只使用iOS自动化框架,所以我认为在任何工具中都不可能。如果你找到什么,请让我也。谢谢提前。
猜你喜欢
  • 2017-12-18
  • 2021-10-14
  • 1970-01-01
  • 2013-05-02
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多