Winforms c# - Фокус набора к первому дочернему элементу управления TabPage

Вы пытались имитировать события нажатия клавиш для быстрого доступа к инструментам разработчика в Chrome?

String openDevTools = Keys.chord(Keys.ALT, Keys.CONTROL, "i");
driver.findElement(By.ByTagName("body")).sendKeys(openDevTools);

Это не идеально и в строгом режиме тестирования вам понадобится определение платформы, чтобы обеспечить покрытие как Mac, так и Windows. Я бы вообще рекомендовал избегать этого (даже если он работает), но это возможно, как работа, если вы действительно должны.

У меня такое чувство, что оно может также потерять фокус самого окна, если вы это сделаете это. Если это так, вам нужно что-то вроде следующего: -

String parentHandle = driver.getWindowHandle(); // get the current window handle
// do your dev tool stuff here
driver.switchTo().window(parentHandle); // switch back to the original window

Надеюсь, что это поможет.

Полезная ссылка, если она вас доставит где угодно: How для обработки нового окна в Selenium WebDriver с использованием Java?

Изменить: просто перечитайте вопрос и не думайте, что это все равно сработает. В ваших модульных тестах должны записываться ошибки в логике вашего кода. Тестирование селена должно только проверять поездки пользователей и фиксировать ошибки, когда пользовательская поездка прерывается. Вы никогда не должны проверять логику кода / ошибку, возникающую при тестировании селена.

20
задан Abhishek 12 August 2015 в 12:19
поделиться

4 ответа

Следующее является решением:

private void frmMainLoad(object sender, EventArgs e)
{
    ActiveControl = textBox1;
}

лучший вопрос однако состоял бы в том почему... Я не совсем уверен, что ответ, к которому.

Редактирование: Я подозреваю, что это - что-то, чтобы сделать с тем, что и форма и TabControl являются контейнерами, но я не уверен.

46
ответ дан 29 November 2019 в 22:45
поделиться

Попытайтесь поместить его в Form_Shown() событие. Поскольку это находится в контейнере, включая Form_Load или даже Форму (), конструктор не будет работать.

14
ответ дан 29 November 2019 в 22:45
поделиться

Вам просто нужно добавить Control.Select () для вашего элемента управления в этот код. Я использовал это, чтобы сосредоточить внимание на элементах управления во время проверки при наличии ошибок.

private void ShowControlTab(Control ControlToShow)
    {
        if (!TabSelected)
        {
            if (ControlToShow.Parent != null)
            {
                if (ControlToShow.Parent.GetType() == typeof(TabPage))
                {
                    TabPage Tab = (TabPage)ControlToShow.Parent;
                    if (WOTabs.TabPages.Contains(Tab))
                    {
                        WOTabs.SelectedTab = Tab;
                        TabSelected = true;
                        return;
                    }
                }

                ShowControlTab(ControlToShow.Parent);
            }
        }
    }
1
ответ дан 29 November 2019 в 22:45
поделиться

Попробуйте использовать textbox1.Select () вместо textbox1.Focus () . Это помогло мне несколько раз.

4
ответ дан 29 November 2019 в 22:45
поделиться
Другие вопросы по тегам:

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