Hi,
Thank you Stefan, for trying to help me out.
In order to find the correct RadioButtonTester, I set an ID on the component I create in the componentRenderer on the RadioButtonGroup.
Using the following (based on your code) I managed to find the right RadioButton to click.
private void clickRadioButton(Mode mode) {
final RadioButtonGroup group = $view(RadioButtonGroup.class).first();
group.getChildren()
.filter(c -> "vaadin-radio-button".equals(c.getElement().getTag()))
.map(this::test)
.map(RadioButtonTester.class::cast)
.filter((rbt) -> {
boolean found = false;
try {
rbt.find(Component.class).id(stringValueMode.name());
found = true;
} catch (NoSuchElementException ignored) {
}
return found;
})
.findFirst().ifPresent(RadioButtonTester::click);
}
Problem now is, the click on the RadioButton doesn’t trigger a valueChangeEvent on the RadioButtonGroup. Looks like this isn’t propagated to the RadioButtonGroup it belongs to.
This is the click() implementation of RadioButtonTester
/**
* If the component is usable, send click to component as if it was from the
* client.
*
* Checkbox status changes from unchecked to checked or vice versa.
*/
public void click() {
ensureComponentIsUsable();
T radioButton = getComponent();
ComponentUtil.fireEvent(radioButton, new ClickEvent<>(radioButton, true,
0, 0, 0, 0, 0, 0, false, false, false, false));
radioButton.setChecked(true);
}
This, however made me realize … I can just fire the event! 
final RadioButtonGroup group = $view(RadioButtonGroup.class).first();
group.setValue(stringValueMode);
ComponentUtil.fireEvent(group, new AbstractField.ComponentValueChangeEvent<>(group, group, null, true));
Why do something the easy way when you can spend a day trying it the hard way?