Не удается найти элемент по частичному тексту ссылки, используя Java и Selenium

Вам нужно установить начальное состояние вашего компонента, попробуйте добавить следующее к вершине вашего компонента.

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);
    }
});
3
задан DebanjanB 15 January 2019 в 20:45
поделиться

1 ответ

Как вы упомянули, вы пытаетесь найти элемент с текстом как 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 .

0
ответ дан DebanjanB 15 January 2019 в 20:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: