2013-02-21 3 views
0

Используя C# и Selenium, я создаю автоматический сценарий, в котором я, среди прочего, пытаюсь выбрать определенное значение из droplist (значение указано в CSV-файле). Я получаю ошибку;Произошла ошибка при запуске атома щелчка

«произошло ошибки выполнения атома CLICK (ПРЕДУПРЕЖДЕНИЯ: Сервер не предоставляет никакой информации StackTrace)»

Я понятия не имею, что атом нажмите есть, намного меньше, как это исправить ... Любая помощь очень ценится!

заранее спасибо

это код для выпадающего списка:

public bool isellHOSelectAdultsDroplist(string adults) 
{ 
    writeToLog(String.Format("Selecting adults from drop list"), this.GetType().Name); 
    String xpathString = HO_ADULT_SELECTION; 

    if(GpoExplicitWaitXpathElement(xpathString, 3, 5)) 
    { 
     IWebElement dropListObjects = webDriver.FindElement(By.XPath(xpathString)); 
     writeToLog(String.Format("DEBUG: Trying to click on appropriate number of adults..."), this.GetType().Name); 
     selectValueFromAdultDropList(dropListObjects, adults); 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

//...and это мой выбор-метод

private void selectValueFromAdultDropList(IWebElement dropListObjects, string adults) 
{ 

    SelectElement manipulateDroplistObject = new SelectElement(dropListObjects); 
    manipulateDroplistObject.SelectByValue(adults); 
    String selection = manipulateDroplistObject.SelectedOption.Text; 

    int numberOfElements = manipulateDroplistObject.Options.Count; 
    writeToLog("Number of elements in Adult Droplist: " + numberOfElements, this.GetType().Name); 
    writeToLog("Selection from adult droplist: " + selection, this.GetType().Name); 
} 
+0

Что такое полная трассировка стека? В какой строке возникает ошибка? Какой браузер? Какая версия этого браузера? Какая версия Селена? – Arran

+0

нет трассировки стека (отсюда предупреждение ...;)); ошибка возникает в строке SelectElement manipulateDroplistObject = new SelectElement (dropListObjects); в методе выбора; браузер - IE9 v9.0.8112.16421; Сервер Selenium версии 2.25.0; Этот способ выбора объектов на одном и том же дросселере работает отлично в 90% случаев, вот что меня прослушивает ... :) – dedmau5

+0

Во-первых, я предлагаю обновить v2.30 от Selenium. v2.25 довольно старый. – Arran

ответ

1

Я ответить на конкретный вопрос, который вы задали, а именно: «Что такое атом щелчка?» В IE-драйвере довольно много функциональности, и реализация этой функции опирается на три столпа.

Первый - это COM-интерфейсы IE. Это объекты и методы, которые использовались для автоматизации различных частей IE более десяти лет.

Вторая технология - это так называемые «родные события». То есть, используя механизмы уровня OS для выполнения пользовательских взаимодействий, таких как нажатия клавиш и щелчки мышью. В Windows это означает использование API SendMessage Windows. Практически в любое время, когда вы используете клавиатуру или мышь с драйвером IE, по умолчанию вы используете собственные события.

Наконец, значительная часть функциональности IE-драйвера реализована с использованием функций JavaScript, которые используются всеми браузерами. Эти функции известны как «automation atoms».

Одним из немногих исключений для использования собственных событий для операций мыши является выбор элемента <option> из элемента <select>. Поскольку IE не дает обнаруженных размеров для элементов <option>, драйвер IE вынужден имитировать действие click с помощью JavaScript. Это означает использование атома для действия click. В вашем случае что-то, должно быть, ошибочно выполнило этот JavaScript, о котором точно сообщалось как «отказ выполнить атом щелчка». Без подробностей, включая примеры HTML-страниц для воспроизведения проблемы, будет очень сложно диагностировать основную причину проблемы.

В этот момент я повторю звонок для обновления до последнего IE-драйвера. Некоторые из кода в этой области были пересмотрены, и, по крайней мере, должно быть возможно извлечь более точные ошибки из случаев сбоев с помощью более позднего драйвера.

+0

Спасибо, я совершенно новичок в области автоматизации тестирования и разработки, поэтому такая информация очень приветствуется! :) – dedmau5

Смежные вопросы