2016-10-18 3 views
1

Я использую Robotframework selenium2Library с базой python и браузером Firefox для автоматизации нашего веб-приложения. Ниже, когда происходит событие Click, происходит событиеRobotframework Selenium2 Наложение заголовка библиотеки на элемент, который нужно щелкнуть во время прокрутки страницы

Заголовок в веб-приложении является неподвижным во время прокрутки страницы (т. Е. Всякий раз, когда прокрутка страницы происходит, заголовок всегда будет доступен для просмотра пользователем, только прокрутка содержимого) проблема заключается в том, что когда элемент, который нужно щелкнуть, недоступен в представлении страницы, нажмите кнопку «Событие пытается прокрутить страницу», чтобы вывести элемент поверх веб-страницы, который находится точно под заголовком (перекрытие), и событие click никогда не происходит, ниже исключения.

WebDriverException: Сообщение: элемент не может быть нажат в точке (1362.63330078125, 15.5). Другой элемент получит клик: https: //url/url/chat/chat.asp''popup','height=600, width = 680, scrollbars = no, resizable = yes, directories = no, menubar = no , status = no, toolbar = no ')); ">

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

Заголовок, отображаемый во все времена, является особенностью нашего веб-приложения, и из-за этого эти скрипты терпят неудачу, может ли кто-нибудь помочь в решении этой проблемы и сделать событие click для выполнения успешно?

+0

Что делать, если для отладки необходимо добавить «Спящий 30-х» на свою страницу, прежде чем выполнять сам клик? Кроме того, «Скриншот страницы захвата» может помочь, если вы сможете увидеть, что находится на странице, когда тест завершился неудачно. –

+0

Я попытался добавить сон до щелчка, но в качестве следующего шага, когда событие Click выполняется, страница прокручивается сверху (чуть ниже строки заголовка). Снимок экрана Capture показывает, что элемент, который нужно нажать, скрыт заголовком. –

+0

Тогда проблема не найдена! если заголовок скрывает элемент, который вы хотите щелкнуть, другой элемент получает щелчок, как говорится в этом вопросе. Сначала вам нужно решить проблему покрытия ... –

ответ

1

Так что если я правильно понял, когда вы нажимаете прокрутку страницы элемента достаточно, чтобы он был виден. Поскольку у вас есть прозрачный заголовок, элемент остается под ним и не может быть нажат. Моим решением было бы создать новое ключевое слово, которое прокручивается до тех пор, пока элемент не будет виден, а затем прокрутите вниз немного больше.

*** Settings *** 
Library  Selenium2Library 

*** Keywords *** 
Scroll And Click 
    [Arguments]   ${element} 
    Execute Javascript window.document.evaluate("//*[@id='${element}']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.scrollIntoView(true); 
    Execute Javascript window.scrollBy(0, -200) 
    Click Element   ${element} 

*** Test Cases *** 
Scrolltest 
    Open Browser  http://www.stackoverflow.com/ gc 
    Scroll And Click hireme