-1

今天我写了一个程序来自动检查 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()
4

4 回答 4

2

所以这是你的尝试:

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中,==对于字符串比较是可以的,也可以使用正则表达式的简写。

于 2018-07-15T08:47:41.193 回答
0

而不是使用WebUI.getUrl() == ... 你可以使用 String.matches (String pattern)。与 AutomatedOwl 的回复类似,您将定义一个字符串变量,该变量是各个国家代码的正则表达式逻辑或分隔聚合。所以你有了

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
}
于 2018-07-14T18:37:34.707 回答
0

如果您想跟踪您所在的国家/地区,您可以为国家/地区代码创建一个有效值对列表,并且只需比较两个字符串。如果您不想这样做并接受 url 字符串中的所有内容,那么我建议您使用split 方法

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
        */
于 2018-07-14T16:26:25.413 回答
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.
    }
于 2018-07-14T16:28:51.260 回答