Search code examples
javakatalon-studiowebui

Accept everything in java if condition


today I wrote a programm that automaticaly checks if an Netflix account is working or not. But I'm struggling at a point where I need to accept all the country codes in the URL. I wanted to use something like * in linux but my IDE is giving me Errors. What is the Solution and are there better ways?

    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()

Solution

  • So this is your attempt:

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

    which fails, as you can't just use * like that (in addition to using ==, which isn't what you should do when using java). But I think this is what you want:

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

    which would match in whatever country you are in: any url like https://www.netflix.com/it-en/login. If within the if statement you need to use the country information, you'll might want a matcher:

    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
    }
    

    Note that we're using java here, as you have the question tagged like that. Katalon is able to use also javascript and groovy, which you've also used in your single-quote strings and leaving out semicolons. In groovy, == for string comparison is ok, and it can also use shorthands for regular expressions.