Appium+;iOS+;Java如何获取我';你刚刚点击了?
我有这样的环境Appium+iOS模拟器+Java。我必须测试这种情况:Appium+;iOS+;Java如何获取我';你刚刚点击了?,java,ios,selenium,ios-simulator,appium,Java,Ios,Selenium,Ios Simulator,Appium,我有这样的环境Appium+iOS模拟器+Java。我必须测试这种情况: 我在应用程序中单击按钮 我的应用程序将转到网站 我需要检查网址 我搜索了这个问题,发现iOS版webdriver没有在应用程序和浏览器之间切换,这就是我不能使用常用代码的原因: driver.getCurrentUrl(); 所以,我决定检查我刚才点击的URL是否正确。但是我不知道如何获取这个URL。 也许有人在这个问题上有经验 我决定澄清一下:我进入了iOS原生应用程序,按下按钮,然后我在某个URL上重定向到safar
driver.getCurrentUrl();
所以,我决定检查我刚才点击的URL是否正确。但是我不知道如何获取这个URL。
也许有人在这个问题上有经验
我决定澄清一下:我进入了iOS原生应用程序,按下按钮,然后我在某个URL上重定向到safari。在没有safari的情况下(当我还在应用程序中的时候),我可以知道这个URL吗?虽然当web浏览器在不同于“本机应用程序”上下文的上下文中打开时,
getCurrentUrl
对Android起作用,但当safari作为“本机应用程序”上下文打开时,它不适用于iOS XCUITest
对于iOS(Safari),您可以使用以下功能:
等待safari应用程序打开(等待下一条语句为True
):
然后单击URL栏并获取其文本值:
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
替换为@iosxguitfindby
我的问题的可能重复项不同。我很抱歉,我没问你要等多久。并与应用程序相关。能否尝试在getcurrenturl行之前使用wait
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();