testing page layout 2. It uses Selenium Web Driver for getting element’s position in browser. Galen receives element’s position, width and height. After that, Galen verifies elements relative to each other on the page. 3. It has flexible Java support 4. Galen has its own file format, with the help of which you can describe complex layout
framework is to extend GalenTestNgTestBase class 2. You can pass your own Selenium Web Driver instance to Galen.checkLayout() method 3. Galen can take screenshots of pages, which it verifies 4. Galen can export all test reports to html file for demonstrative results
Each .gspec file should normally starts with this keyword. There are 3 available locators for describing web element on page: xpath, id and css. ‘= Main section =‘ - section definition. Sections are very useful for understanding the structure of gspec file. There are some callback methods in ValidationListener interface, which connected with section’s events. ‘@on’ – verification filter or tag. If some verifications have conditions, you can mark them with tag and pass it to Galen.checkLayout() method.
elements into a specific group, as shown below: @objects header css #header menu css #menu content css #content footer css #footer @groups skeleton_elements header, menu, content, footer = Skeleton = &skeleton_elements: inside screen 0px left right
for page layout verification, such as: ‘near’, ‘below’, ‘above’, ‘inside’, ‘aligned’, ‘text’, ‘contains’, ‘color-scheme’ and etc. textfield: right-of button 5 px above button 5 to 10 px near button 10px left near button 5px bottom left inside container aligned vertically left text ends “galen!" absent
values for different specs @set commonHeaderMargin 10 to 20px contentMargin ~ 20px = Header = header_icon: inside header ${commonHeaderMargin} top left = Content = article-description: inside main ${contentMargin} left right
for object groups (e.g. @forEach [&mainframe] as item) 2. You can also create your own verification functions and use them with ‘|’ symbol (e.g. @rule should be squared width 100% of ${objectName}/height) 3. You can also create your own JavaScript functions and use them as verification attribute 4. You can also declare conditional checks using JavaScript expressions (e.g. @if $(isVisible(“banner-1”)))
results to external HTML file. GalenTestInfo test =GalenTestInfo.fromString("Login page on mobile device test"); test.getReport().layout(layoutReport, "check layout on mobile device"); tests.add(test); new HtmlReportBuilder().build(tests,"target/galen- html-reports");