Перейти к содержимому

Публикации fenixx

29 публикаций создано fenixx (учитываются публикации только с 09 мая 2023)



#129319 Нестабильное прохождение тестов.

Отправлено автор: fenixx 09 апреля 2014 - 11:55 в Selenium - Functional Testing

Хорошо, тогда конкретный вопрос. Какими методами правильно и эфективно дождаться полной загрузки страницы после нажатия на кнопку или линку, кроме как вручную подбирать время задержки??

 

Тут как ожидать элемент лучше:

http://software-test...resent/?p=61704

 

Тут почему Wait класс не стоит использовать для ожидания:

http://software-test...resent/?p=61742

 

Возможно у вас на странице еще и Ajax загружается.
Загрузка страницы не означает окончание работы Ajax.

	int TimeOutLoadAjax = 30000; // 1000 = 1 сек.  
        int stepTime = 200; // Шаг ожидания
	public void WaitForAjax(IWebDriver Driver)// Метод ожидает окончания Ajax запроса на странице
        {
            int i = 0;
            while (TimeOutLoadAjax > (i = i + stepTime))
            {
                var ajaxIsComplete = (bool)(Driver as IJavaScriptExecutor).ExecuteScript("return jQuery.active == 0");// Это для ожидания завершения Ajax при использовании библиокеки jQuery
                if (ajaxIsComplete)
                {
                    // Тут логирование в случае окончания всех Ajax запросов на странице
                    break;
                }
                else if (TimeOutLoadAjax <= i)
                {
                    // Тут логирование в случае не удачи по окончанию времени
                }
                Thread.Sleep(stepTime);
            }
        }



#128754 Selenium не находит локаторы

Отправлено автор: fenixx 28 марта 2014 - 07:58 в Selenium - Functional Testing

 

Элемент который ищу. Так он отображается в коде браузера IE v.11

Для начала прочитайте это, и сделайте даунгрейд ИЕ.

This driver has been tested with IE 6, 7, 8, 9, and 10 on appropriate combinations of XP, Vista and Windows 7.

 

Хоть и не тестировалось под IE v.11 но этот код отрабатывает правильно:

 var NotMultiSel = DriverIE.FindElementsByXPath(@"//select[not(@multiple)]/..");

 Count = 1; На странице находится как раз один такой select.

 

Не понятно почему этот не отрабатывает:

 var MultiSel = DriverIE.FindElementsByXPath(@"//select[@multiple]/..");

 

Откат IE до v.10 не помог

 

Удалось обойти проблему так:

var MultiSel = DriverIE.FindElements(By.XPath(@"//select[not(@multiple)!='false']/.."));

 

 




#128750 Selenium не находит локаторы

Отправлено автор: fenixx 28 марта 2014 - 07:26 в Selenium - Functional Testing

Как вы проверяете свои запросы?

FirePath находит элементы?

Вы пытаетесь найти сами селекты, а не их родители...

Через FirePath.

FirePath находит без проблем.

Родители пытаюсь найти.




#128748 Selenium не находит локаторы

Отправлено автор: fenixx 28 марта 2014 - 06:56 в Selenium - Functional Testing

Метод FindElementsByXPath() не находит по селектору.

Использую библиотеки Seleniuma WebDriver.dll и WebDriver.Suppor.

Пробовал разные версии:

 3.41

 3.40

 3.34

 

Куски кода C#

 RemoteWebDriver DriverIE;

 DriverIE = new InternetExplorerDriver();

 var MultiSel = DriverIE.FindElementsByXPath(@"//select[@multiple]/.."); // Находим всех родителей элемента select с атрибутом multiple

 Count = 0 - делаю вывод что не находит ни одного элемента. Или я ошибаюсь?

 Но на странице точно есть такой элемент.

 

HTML

Элемент который ищу. Так он отображается в коде браузера IE v.11

<select name="Speakers" class="chzn-select span8 span8 chzn-done loaded" id="Speakers" style="display: none;" multiple="" data-placeholder="Докладчики"></select>

 

Подскажите в чем дело и как это обойти можно?

Если нужна еще информация спрашивайте.