# I'm having a problem using a login method in a keyword

**URL:** <https://forum.katalon.com/t/im-having-a-problem-using-a-login-method-in-a-keyword/22274>\
**Category:** Miscellaneous\
**Tags:** katalon-studio\
**Created:** [April 1, 2019, 9:22pm UTC](https://forum.katalon.com/t/im-having-a-problem-using-a-login-method-in-a-keyword/22274 "2019-04-01T21:22:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![luciano.silva](https://avatars.discourse-cdn.com/v4/letter/l/e47c2d/32.png) [@luciano.silva](https://forum.katalon.com/u/luciano.silva)\
**Post date:** [April 1, 2019, 9:22pm UTC](https://forum.katalon.com/t/im-having-a-problem-using-a-login-method-in-a-keyword/22274/1 "2019-04-01T21:22:27Z")

</div>

Hello, I created a keyword that enables login for my website however some computers are not running it correctly, I did a little research but could not find a solution to the problem

**login.Generico.login(LOGIN\_ADMIN, PASSWORD)**  
**ERROR c.k.k.core.main.WSVerificationExecutor ? Verification FAILED.**  
**groovy.lang.MissingPropertyException: No such property: TestConstants for class: WSVerification1554147461449**  
**at WSVerification1554147461449.run(WSVerification1554147461449:17)**  
**at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)**  
**at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)**  
**at com.kms.katalon.core.main.WSVerificationExecutor.runScript(WSVerificationExecutor.java:146)**  
**at com.kms.katalon.core.main.WSVerificationExecutor.doExecute(WSVerificationExecutor.java:140)**  
**at com.kms.katalon.core.main.WSVerificationExecutor.processExecutionPhase(WSVerificationExecutor.java:123)**  
**at com.kms.katalon.core.main.WSVerificationExecutor.accessMainPhase(WSVerificationExecutor.java:115)**  
**at com.kms.katalon.core.main.WSVerificationExecutor.execute(WSVerificationExecutor.java:103)**  
**at com.kms.katalon.core.main.TestCaseMain.runWSVerificationScript(TestCaseMain.java:127)**  
**at com.kms.katalon.core.main.TestCaseMain$runWSVerificationScript$0.call(Unknown Source)**  
**TempTestCase1554147452919.run(TempTestCase1554147452919.groovy:21)**

1-\> keyword created

package constants

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint  
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase  
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData  
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject

import com.kms.katalon.core.annotation.Keyword  
import com.kms.katalon.core.checkpoint.Checkpoint  
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW  
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile  
import com.kms.katalon.core.model.FailureHandling  
import com.kms.katalon.core.testcase.TestCase  
import com.kms.katalon.core.testdata.TestData  
import com.kms.katalon.core.testobject.TestObject  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS  
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI

import internal.GlobalVariable

**public class Constants {**  
\*\* private Constants() {\*\*  
\*\* };\*\*

\*\* public String LOGIN\_1 = ‘abc’;\*\*

\*\* public String LOGIN\_2 = ‘1234’;\*\*

\*\* public String LOGIN\_3 = ‘axyk.’;\*\*

\*\* public String LOGIN\_4 = ‘a134’;\*\*

\*\* public String PASSWORD = ‘gfdsgsgghdfsyhrteyre=’;\*\*  
**}**

2-\> keyword created

package login  
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint  
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase  
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData  
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject  
import org.openqa.selenium.Keys as Keys

import com.kms.katalon.core.annotation.Keyword  
import com.kms.katalon.core.checkpoint.Checkpoint  
import com.kms.katalon.core.checkpoint.CheckpointFactory  
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords  
import com.kms.katalon.core.model.FailureHandling  
import com.kms.katalon.core.testcase.TestCase  
import com.kms.katalon.core.testcase.TestCaseFactory  
import com.kms.katalon.core.testdata.TestData  
import com.kms.katalon.core.testdata.TestDataFactory  
import com.kms.katalon.core.testobject.ObjectRepository  
import com.kms.katalon.core.testobject.TestObject  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords  
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords

import internal.GlobalVariable

import MobileBuiltInKeywords as Mobile  
import WSBuiltInKeywords as WS  
import WebUiBuiltInKeywords as WebUI

import org.openqa.selenium.WebElement  
import org.openqa.selenium.WebDriver  
import org.openqa.selenium.By

import com.kms.katalon.core.mobile.keyword.internal.MobileDriverFactory  
import com.kms.katalon.core.webui.driver.DriverFactory

import com.kms.katalon.core.testobject.RequestObject  
import com.kms.katalon.core.testobject.ResponseObject  
import com.kms.katalon.core.testobject.ConditionType  
import com.kms.katalon.core.testobject.TestObjectProperty

import com.kms.katalon.core.mobile.helper.MobileElementCommonHelper  
import com.kms.katalon.core.util.KeywordUtil

import com.kms.katalon.core.webui.exception.WebElementNotFoundException

class Generico {  
/\*\*  
\* Refresh browser  
\*/  
@Keyword  
def refreshBrowser() {  
KeywordUtil.logInfo(“Refreshing”)  
WebDriver webDriver = DriverFactory.getWebDriver()  
webDriver.navigate().refresh()  
KeywordUtil.markPassed(“Refresh successfully”)  
}

```
**@Keyword**

```

\*\* def login(String login, String password) {\*\*  
\*\* WebUI.openBrowser(‘’)\*\*

\*\* WebUI.navigateToUrl(‘[http://localhost:4200/#/](http://localhost:4200/#/)’)\*\*

\*\* WebUI.setText(findTestObject(‘Page\_CMS T1/input\_Ol faa o login\_login’), login)\*\*

\*\* WebUI.setEncryptedText(findTestObject(‘Page\_CMS T1/input\_Login obrigatrio\_senha’), password)\*\*

\*\* WebUI.sendKeys(findTestObject(‘Page\_CMS T1/input\_Login obrigatrio\_senha’), Keys.chord(Keys.ENTER))\*\*

\*\* WebUI.delay(3)\*\*  
\*\* }\*\*

```
/**
 * Click element
 * @param to Katalon test object
 */
@Keyword
def clickElement(TestObject to) {
	try {
		WebElement element = WebUiBuiltInKeywords.findWebElement(to);
		KeywordUtil.logInfo("Clicking element")
		element.click()
		KeywordUtil.markPassed("Element has been clicked")
	} catch (WebElementNotFoundException e) {
		KeywordUtil.markFailed("Element not found")
	} catch (Exception e) {
		KeywordUtil.markFailed("Fail to click on element")
	}
}

/**
 * Get all rows of HTML table
 * @param table Katalon test object represent for HTML table
 * @param outerTagName outer tag name of TR tag, usually is TBODY
 * @return All rows inside HTML table
 */
@Keyword
def List<WebElement> getHtmlTableRows(TestObject table, String outerTagName) {
	WebElement mailList = WebUiBuiltInKeywords.findWebElement(table)
	List<WebElement> selectedRows = mailList.findElements(By.xpath("./" + outerTagName + "/tr"))
	return selectedRows
}

```

}

using keywork in a test, being q in some pcs give that error, and in others, normally runs the test.

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint  
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase  
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData  
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject  
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint  
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW  
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile  
import com.kms.katalon.core.model.FailureHandling as FailureHandling  
import com.kms.katalon.core.testcase.TestCase as TestCase  
import com.kms.katalon.core.testdata.TestData as TestData  
import com.kms.katalon.core.testobject.TestObject as TestObject  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS  
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI  
import org.openqa.selenium.Keys as Keys  
import internal.GlobalVariable as GlobalVariable

**import constants.Constants as TestConstants**

**CustomKeywords.‘login.Generico.login’(TestConstants.LOGIN\_ADMIN, TestConstants.PASSWORD)**

**Has anyone ever had anything like this?**

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [April 21, 2019, 5:46am UTC](https://forum.katalon.com/t/im-having-a-problem-using-a-login-method-in-a-keyword/22274/2 "2019-04-21T05:46:49Z")

</div>

Your post above is very tough to read because codes and logs are not properly formatted.

Please read the tutorial mentioned in the following post:

> [@Use Code Formatting feature in your posts](http://forum.katalon.com/t/code-formatting/23550):
>
> How to format a posting text to present codes and logs nicely? Have a look at the following tutorial. Katalon Community uses [Discourse](https://www.discourse.org/) forum software.

and edit your post so that codes and logs are distinguished.

---

<div class="post-metadata">

**Author:** ![albert.vu](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/albert.vu/32/20595_2.png) [@albert.vu](https://forum.katalon.com/u/albert.vu)\
**Post date:** [August 8, 2022, 7:49am UTC](https://forum.katalon.com/t/im-having-a-problem-using-a-login-method-in-a-keyword/22274/3 "2022-08-08T07:49:26Z")

</div>

Archived on August 8, 2022, 7:49am UTC


