Dynamic radioButton


#1

Hello!
I have one question i need to click on dynamic radioButton
Screenshot_1


the name=“402242[pre_risk_accept]” always changes when the new client registered i have this id of new client for now it is 402242.
is there some features how i can find on webpage the needed radio buddon by this ID


#2

If the ID is dynamic, then it will be useless to you. Try using something else thats unique to locate it, maybe the value ?


#3

i can get this ID by making select to database, so i need only to find the radiobutton with this id on the webpage =) i find some information about trying to use XPATH

TestObject to = findTestObject('/Page/input_Accept_402278pre_risk_accept')
// get Map with <SelectorMethod, String> pair
Map allSelectors = to.getSelectorCollection()

// println original value of XPATH selector
println(allSelectors.get(SelectorMethod.XPATH))

// update the value
to.setSelectorValue(SelectorMethod.XPATH, '//input[@name=\''+ substresult +'[pre_risk_accept]\']')

//input[@name='402278[pre_risk_accept]']
// println new value of XPATH selector
allSelectors = to.getSelectorCollection()

println(allSelectors.get(SelectorMethod.XPATH))

but i dont know how i can adjust it for searching the radio button on the page.

For example i have the radio button :

with

//input[@name='402278[pre_risk_accept]']

if i somehow change this input to name what i need the katalon will find the needed radio button?
For example now there are id 402278 if i put there needed id to me 402279 katalon will find new radio button?


#4

Yes it will but you dont want to have to change it each time, click on attributes and send another screen shot of the screen you have please


#5


#6

Ok so if you use attributes to locate the element, and just use type and value, you should be fine every time


#7

but how can i adjust this attributes to radio button every time? is there any methods, i can’t find any in google :persevere:


#8

You will have to change it manually


#9


but are there any methods how can i automatically change object properties ->name (402278[pre_risk_accept])
if there is, my problem will be solved :slight_smile:


#10

You can use on the script modifyObjectProperty keyword


#11

Yes Thank you i already find it too ))) and have automatically change object properties all is working!

CustomKeywords.'demomysql.Demo.connectDB'('demo.db', 'database', '3306', 'user', 'test')
clientID = CustomKeywords.'demomysql.Demo.executeQuery'('select id from contracts where user_id = '+ substresult +';')
CustomKeywords.'demomysql.Demo.closeDatabaseConnection'()
String dinamycclient = clientID + '[pre_risk_accept]'
println(dinamycclient)

TestObject yourObject = WebUI.modifyObjectProperty(findTestObject('Page/input_Accept_402278pre_risk_accept'), 'name', 'equals', dinamycclient , true)

WebUI.click(yourObject)

#12