Ошибка при повторном нажатии кнопки поиска элемента на странице.

csharp
webdriver
Теги: #<Tag:0x00007fedbc196f70> #<Tag:0x00007fedbc196d90>

(It Ot) #1

C#, WebDriver

СЦЕНАРИЙ
1. Заполняю:
textBox34.Text;
textBox19.Text;
textBox1.Text;

  1. Нажимаю кнопку
    Код выполняется
  2. Нажимаю кнопку второй раз
    Выпадает ошибка: “No frame element found with name or id ads_frame1”

КОД

Browser.SwitchTo().Frame(textBox34.Text); // переключаемся в фрейм
IWebElement selector = Browser.FindElement(By.CssSelector(textBox19.Text));
textBox1.Text = selector.Text;
Application.DoEvents();
selector.Click(); 

ВОПРОС
Почему при повторном нажатии кнопки выпадает ошибка?


(Dmitrii Demin) #2

Может где-то в коде вызываемых методов вызывается switchTo defaultContent ? Если да, то тут происходит сброс к корню страницы


(Максим Неверный) #3

Варианты могут быть различны, я на своей практике с таким сталкивался. Проверьте, не меняется ли имя локатора кнопки после заполнения текстового поля. Так же надо убедиться, что опять же после заполнения поля кнопка кликабельна. На python это будет звучить так:

wait.until(EC.element_to_be_clickable((By.ID, 'id_button')))

Неявное ожидание загрузки элемента тоже может полезно:

implicitly_wait

(It Ot) #4

Не совсем понимаю о чём вы говорите…
Код выглядит так

private void button41_Click(object sender, EventArgs e)
{
  Browser.SwitchTo().Frame(textBox34.Text); // переключаемся в фрейм
IWebElement selector = Browser.FindElement(By.CssSelector(textBox19.Text));
textBox1.Text = selector.Text;
Application.DoEvents();
selector.Click();
}

всё… Ну не “всё” есть ещё кнопки… но они не задействованы

Если происходит, то как можно вернуться?

не меняется

Вы про кнопку на Windows Form или на сайте?
Windows Form - кликабельна

PS.
Я пока начинающий, поэтому прошу делать поправку на неточности в терминологии и формулировании вопросов.