今天,我编写了一个程序,该程序自动检查Netflix帐户是否正常运行。但是在需要接受URL中所有国家/地区代码的时候,我很挣扎。我想在Linux中使用*,但我的IDE给我Errors。解决方案是什么,还有更好的方法吗?
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()
答案 0 :(得分:2)
这是您的尝试:
if (WebUI.getUrl() == "https://www.netflix.com/" + * + "-" + * + "/login") {
}
会失败,因为您不能像这样使用*
(除了使用==
之外,这不是使用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,您也已在单引号字符串中使用了它们,并省略了分号。在常规情况下,可以使用==
进行字符串比较,也可以将速记用于正则表达式。
答案 1 :(得分:0)
如果要跟踪您所在的国家/地区,则可以为国家/地区代码创建一个成对有效值的列表,只需比较两个字符串即可。 如果您不想这样做,并且不接受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
*/
答案 2 :(得分:0)
尝试使用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.
}
答案 3 :(得分:0)
代替使用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
}