我正在尝试自动化我的移动网络应用程序。每次加载时,它都会询问"___ 想使用您的位置"。用户可以点击"不允许"或"确定"。
我正在使用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')
-
对于"接受系统警报",请创建一个方法:
def accept_notification_alert(self): print('Accept alert') try: self.driver.switch_to.alert.accept() except WebDriverException: print('Webdriver error: %s' % WebDriverException.msg)
-
要消除系统警报,您可以创建方法:
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((;