WebDriver + swtich в другой браузер - PullRequest
0 голосов
/ 30 марта 2011

Я видел множество сообщений, рассказывающих о работе с всплывающим окном с помощью дескриптора окна. Но как работать с браузером, который открывается при нажатии на кнопку -

<button class="power_buy_now_button" type="button"> 
</button>

Я пытался получить дескриптор окна, но каждый раз, когда я сталкиваюсь с изменяющейся строкой, что-то вроде - "8c5f028e-e7cc-4d0f-afe4-983bb119391e"

Нет даже названия, связанного с новым браузером. Более того, я не уверен, как бы использовать заголовок, чтобы перенести управление в новый браузер. А потом в какой-то момент мне придется вернуть управление первому браузеру.

Ответы [ 2 ]

4 голосов
/ 13 апреля 2011

Лучше всего сделать что-то вроде следующего:

// This code assumes you start with only one browser window in your test.
// If you have more than one browser window, your code will be more complex.
string originalHandle = driver.GetWindowHandle();
driver.FindElement(By.ClassName("power_buy_now_button")).Click();

// May need to wait for window handles collection to have a .Count of 2,
// as clicks are asynchronous.
string popupHandle = string.Empty;
ReadOnlyCollection<string> windowHandles = driver.GetWindowHandles();
foreach (string handle in windowHandles)
{
    if (handle != originalHandle)
    {
        popupHandle = handle;
        break;
    }
}

driver.SwitchTo().Window(popupHandle);
// Do stuff in the popup window, eventually closing it with driver.Close()
driver.SwitchTo().Window(originalHandle);
0 голосов
/ 31 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...