首页 > 解决方案 > 如果条件,接受java中的所有内容

问题描述

今天我写了一个程序来自动检查 Netflix 帐户是否正常工作。但是我在需要接受 URL 中的所有国家/地区代码的时候遇到了困难。我想在 linux 中使用 * 之类的东西,但我的 IDE 给了我错误。解决方案是什么,有更好的方法吗?

    WebUI.openBrowser('')

    WebUI.navigateToUrl('https://www.netflix.com/login')

    WebUI.setText(findTestObject('/Page_Netflix/input_email'), 'example@gmail.com')

    WebUI.setText(findTestObject('/Page_Netflix/input_password'), '1234')

    WebUI.click(findTestObject('/Page_Netflix/button_Sign In'))

    TimeUnit.SECONDS.sleep(10)

    if (WebUI.getUrl() == "https://www.netflix.com/" + * + "-" + * + "/login") {

    }
    WebUI.closeBrowser()

标签: javakatalon-studiowebui

解决方案


所以这是你的尝试:

if (WebUI.getUrl() == "https://www.netflix.com/" + * + "-" + * + "/login") {

}

失败了,因为你不能*像那样使用(除了 using ==,这不是你在使用 java 时应该做的)。但我认为这就是你想要的:

if (WebUI.getUrl().matches("https://www\\.netflix\\.com/.+-.+/login")) {
  // do whatever
}

这将在您所在的任何国家/地区匹配:任何网址,例如https://www.netflix.com/it-en/login. 如果在 if 语句中您需要使用国家信息,您可能需要一个匹配器:

import java.util.regex.*;


Pattern p = Pattern.compile("https://www\\.netflix\\.com/(.+)-(.+)/login");
Matcher m = p.matcher(WebUI.getUrl());
if (m.matches()) {
   String country = m.group(1);
   String language = m.group(2);
   // do whatever
}

请注意,我们在这里使用 java,因为您的问题是这样标记的。Katalon 还可以使用 javascript 和 groovy,您也可以在单引号字符串中使用它们并省略分号。在groovy中,==对于字符串比较是可以的,也可以使用正则表达式的简写。


推荐阅读