如何在 iOS Appium 上按 "OK" 进行位置弹出窗口



我正在尝试自动化我的移动网络应用程序。每次加载时,它都会询问"___ 想使用您的位置"。用户可以点击"不允许"或"确定"。

我正在使用self.driver.switch_to.alert.accept(),但它接受默认值,即"不允许"。我怎样才能接受"OK"而不是"不允许"?

这种方法目前也对我不起作用。

您是否尝试使用Appium检查器找到"确定"按钮? 我有相同的位置弹出窗口,对我来说,这些工作中的任何一个(xpath 或辅助功能 ID(在 iOS 上。

像这样:

allow_access_to_location_ios = (MobileBy.ACCESSIBILITY_ID, 'OK')

allow_access_to_location_ios = (MobileBy.XPATH, '//XCUIElementTypeButton[@name="OK"]')

然后调用方法:

self.wait_for_and_accept_alert(*self.allow_access_to_location_ios)

和方法将等待元素 15 秒,如果找到它,请单击它,否则它将打印一条错误消息:

def wait_for_and_accept_alert(self, *locator):
try:
WebDriverWait(self.driver, 15).until(lambda s: self.driver.find_element(*locator))
self.driver.find_element(*locator).click()
except TimeoutException:
print('Unable to find element')
  1. 对于"接受系统警报",请创建一个方法:

    def accept_notification_alert(self):
    print('Accept alert')
    try:
    self.driver.switch_to.alert.accept()
    except WebDriverException:
    print('Webdriver error: %s' % WebDriverException.msg)
    
  2. 要消除系统警报,您可以创建方法:

    def dismiss_notification_alert(self):
    print('Dismiss alert')
    try:
    self.driver.switch_to.alert.dismiss()
    except WebDriverException:
    print('Webdriver error: %s' % WebDriverException.msg)
    

如果默认方法 (switch_to.alert.accept()( 不起作用,您可以尝试移动手势:

driver.execute_script('mobile: alert', {'action': 'accept', 'buttonLabel': <your button label here>});

我知道您正在询问设备位置警报。您可以识别并使用"确定的 Xpath "按钮进行单击。我使用以下代码(在 java 中(在应用程序中出现警报。

driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[7]/UIAAlert[1]/UIACollectionView[1]/UIACollectionCell[1]/UIAButton[1]"((.click((;

相关内容

  • 没有找到相关文章

最新更新