如果条件接受 java 中的所有内容
Accept everything in java if condition
今天我编写了一个自动检查 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()
如果您想跟踪您所在的国家/地区,您可以为国家/地区代码创建一对有效值列表,并且只需比较两个字符串。
如果您不想那样做并接受 url 字符串中的所有内容,那么我建议您使用 split method:
String sections[] = (WebUI.getUrl()).split("/");
/* Now we have:
sections[0] = "https:""
sections[1] = ""
sections[2] = "www.netflix.com"
sections[3] = whatever the code country is
sections[4] = login
*/
尝试在URL字符串上用正则表达式解决:
final String COUNTRY_CODES_REGEX =
"Country1|Country2|Country3";
Pattern pattern = Pattern.compile(COUNTRY_CODES_REGEX);
Matcher matcher = pattern.matcher(WebUI.getUrl());
if (matcher.find()) {
// Do some stuff.
}
而不是使用 WebUI.getUrl() == ...
你可以使用 String.matches (String pattern)
。与 AutomatedOwl 的回复类似,您将定义一个 String 变量,它是各个国家代码的正则表达式逻辑或分隔聚合。所以你有
String country1 = ...
String country2 = ...
String countryN = ...
String countryCodes = String.join("|", country1, country2, countryN);
然后你有一些类似的东西:
if (WebUI.getUrl().matches("https://www.netflix.com/" + countryCodes + "/login")) {
... do stuff
}
这就是你的尝试:
if (WebUI.getUrl() == "https://www.netflix.com/" + * + "-" + * + "/login") {
}
失败了,因为你不能像那样使用 *
(除了使用 ==
,这不是你在使用 java 时应该做的)。但我认为这就是你想要的:
if (WebUI.getUrl().matches("https://www\.netflix\.com/.+-.+/login")) {
// do whatever
}
这将匹配您所在的任何国家:任何 url,如 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中,==
进行字符串比较是可以的,也可以使用正则表达式的简写
今天我编写了一个自动检查 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()
如果您想跟踪您所在的国家/地区,您可以为国家/地区代码创建一对有效值列表,并且只需比较两个字符串。 如果您不想那样做并接受 url 字符串中的所有内容,那么我建议您使用 split method:
String sections[] = (WebUI.getUrl()).split("/");
/* Now we have:
sections[0] = "https:""
sections[1] = ""
sections[2] = "www.netflix.com"
sections[3] = whatever the code country is
sections[4] = login
*/
尝试在URL字符串上用正则表达式解决:
final String COUNTRY_CODES_REGEX =
"Country1|Country2|Country3";
Pattern pattern = Pattern.compile(COUNTRY_CODES_REGEX);
Matcher matcher = pattern.matcher(WebUI.getUrl());
if (matcher.find()) {
// Do some stuff.
}
而不是使用 WebUI.getUrl() == ...
你可以使用 String.matches (String pattern)
。与 AutomatedOwl 的回复类似,您将定义一个 String 变量,它是各个国家代码的正则表达式逻辑或分隔聚合。所以你有
String country1 = ...
String country2 = ...
String countryN = ...
String countryCodes = String.join("|", country1, country2, countryN);
然后你有一些类似的东西:
if (WebUI.getUrl().matches("https://www.netflix.com/" + countryCodes + "/login")) {
... do stuff
}
这就是你的尝试:
if (WebUI.getUrl() == "https://www.netflix.com/" + * + "-" + * + "/login") {
}
失败了,因为你不能像那样使用 *
(除了使用 ==
,这不是你在使用 java 时应该做的)。但我认为这就是你想要的:
if (WebUI.getUrl().matches("https://www\.netflix\.com/.+-.+/login")) {
// do whatever
}
这将匹配您所在的任何国家:任何 url,如 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中,==
进行字符串比较是可以的,也可以使用正则表达式的简写