Попробуйте сделать ожидание на существование элемента с конкретным текстом или значением.
Например - ждем ссылку с текстом Save. Для этого просто пишем соответствующий локатор (Как написал все, заметил что Petrov.Sergey это и предлагает ):WebDriverWait waitLinkSave = new WebDriverWait(driver, TimeSpan.FromSeconds(30));//Ждем 30 секунд, например waitLinkSave.Until(ExpectedConditions.ElementExists(By.XPath(//a[contains(text(), 'Save')])));//Указываем что ждем ссылку с текстом "Save"Хотите прикол? Вы ищете по ключевому слову contains(...)
Строка "10568" содержит строку "1".
То есть "10568".contains("1") = true
В Вашем примере ссылка с текстом "Save text" будет найдена (ожидание сработает), но это будет совершенно не тот элемент, который нужен.
Топикстартеру нужно точное совпадение.
Contains можно и не использовать. Я же просто пример привел ибо не нам же додумывать все за топикстартера и ему, и только ему известны все условия =)
И пример же банальный. Можно к примеру прописать путь типа "//div[@id='NuzhniyDiv']//a[contains(text(),'1')]" и счастье будет ближе.
Ну а с точным совпадением еще проще - если уж текст и известен к тому же "//div[@id='NuzhniyDiv']//a[text()=10568')]".
mazik7, так не сработает
Ужасно
Но все же если вы ждете конкретного значения элемента, то нужно плясать как раз в сторону ожидания именно этого конкретного значения. А иначе StaleReferenceException будет преследовать в ночных кошмарах.
6. Не тест столько длится, а поиск
И вот именно поэтому нужно переписывать. Правда не тест - а поиск. И я так понимаю по истечении 40 секунд он просто вылетает по исключению?
Кстати времени много прошло - проблему решили?