Вам нужно установить начальное состояние вашего компонента, попробуйте добавить следующее к вершине вашего компонента.
getInitialState: function() {
return {
autocomplete_from: ''
};
}
EDIT:
В компоненте DynamicFrom у вас есть :
render: function() {
return (
<AutocompleteFromCheckboxes
autocomplete_from={this.props.data.autocomplete_from} />
);
}
Поскольку вы пытаетесь ссылаться на состояние, которое вы должны написать
autocomplete_form={this.state.autocomplete_from}
Также вы пытаетесь установить состояние из дочернего компонента и не должны напрямую изменять государство. Лучший способ приблизиться к этому - передать функцию DynamicFrom (удерживает состояние) в AutocompleteFromCheckboxes. Таким образом.
var DynamicForm = React.createClass({
handleChange: function(value) {
this.setState({autocompelete_from: value});
},
render: function() {
return(
<AutocompleteFromCheckboxes
autocomplete_from={this.state.autocomplete_from}
handleChange={this.handleChange}
/>
);
},
....
});
AutocompleteFromCheckboxes = React.createClass({
....
onChange={this.handleChange}
....
handleChange: function(e) {
this.props.handleChange(e.target.value);
}
});
Как вы упомянули, вы пытаетесь найти элемент с текстом как Accounts (n) , где n = 1, 2, 3 ... и еще пару элементов с linkText [113 ] как Добавить новую учетную запись и Просмотр всех учетных записей существует, вместо использования partialLinkText
было бы лучше использовать XPath , и вы можете использовать следующее решение:
XPath :
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//li/a[@class='first accounting_page_menu' and starts-with(@href,'/accounting/view_all_accounts?')][starts-with(.,'Accounts')]"))).click();
Согласно обсуждению [ 112] Официальные стратегии поиска для веб-драйвера Селектор текста с частичной ссылкой предпочтительнее, чем Селектор XPath . Однако согласно этому сценарию использования из-за наличия похожих текстов ссылок было бы проще создать XPath .