gpt4 book ai didi

java - Appium + iOS + Java 如何获取我刚刚点击的 URL?

转载 作者:行者123 更新时间:2023-12-05 07:32:11 24 4
gpt4 key购买 nike

我有这样的环境 Appium + iOS Simulator + Java。我必须测试这种情况:

  1. 我点击应用中的按钮
  2. 我的应用正在网站
  3. 我需要检查 URL

我搜索了这个问题并意识到 iOS 的 webdriver 没有在应用程序和浏览器之间切换,这就是我不能使用常用代码的原因:

driver.getCurrentUrl();

所以,我决定检查我刚刚点击的 URL 是否正确。但我不知道如何获得这个网址。可能有人在这个问题上有经验吗?

我决定澄清一下:我进入了 iOS 原生应用程序,按下按钮,然后我将重定向到某个 URL 上的 safari。我是否有可能在没有 safari 的情况下知道这个 URL(在我还在应用程序中的那一刻)。

最佳答案

虽然 getCurrentUrl 在 Web 浏览器打开时在与“ native 应用程序”上下文不同的上下文中打开时适用于 Android,但当 Safari 打开为“ native 应用程序”上下文时,它没有为 iOS XCUITest 实现.

对于 iOS(Safari),您可以使用以下内容:

等到 safari 应用程序打开(等到下一个语句为 True):

appiumDriver.queryAppState("com.apple.mobilesafari").toString().equals("RUNNING_IN_FOREGROUND")

然后点击 URL 栏并获取它的 TextValue:

MobileElement urlToolBar = appiumDriver.findElement(By.xpath("//XCUIElementTypeOther[@name='URL']"));
urlToolBar.click();
appiumDriverWait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//XCUIElementTypeTextField[@name='URL']")));
MobileElement urlTextFied = appiumDriver.findElement(By.xpath("//XCUIElementTypeTextField[@name='URL']"));
String desiredUrl = urlTextFied.getText();

如果项目中使用了 Page Factory,则将 findElement 替换为 @iOSXCUITFindBy

关于java - Appium + iOS + Java 如何获取我刚刚点击的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51417198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com