package com.citrix.tellurium.test;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
import org.tellurium.test.java.TelluriumTestNGTestCase;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import com.citrix.tellurium.ui.*;
public class DemoCitrixPage extends TelluriumTestNGTestCase {
private static CitrixHomePageUI app;
private static LoginModuleUI LoginUI;
private static HomePageSectionUI SectionUI;
@BeforeClass
public static void initUi() {
app = new CitrixHomePageUI();
app.defineUi();
app.useJQuerySelector();
app.enableSelectorCache();
// Login module
LoginUI = new LoginModuleUI();
LoginUI.defineUi();
LoginUI.useJQuerySelector();
LoginUI.enableSelectorCache();
// Home Page section UI Links
SectionUI = new HomePageSectionUI();
SectionUI.defineUi();
SectionUI.useJQuerySelector();
SectionUI.enableSelectorCache();
}
@Test
public void test1()
{
// go to WebSite index page
//selenium.open("/lang/English/home.asp");
connectUrl("http://www.citrix.com/lang/English/home.asp");
// Verify webSite content
app.waitForPageToLoad(30000);
assertEquals("Citrix Systems - Virtualization, Networking and
Cloud.
Simplified.", app.getTitle());
assertTrue(app.isTextPresent("Products & Solutions"));
SectionUI.clickProductsAndSolutions();
assertEquals("Citrix Systems » The Best Application Delivery
Solution", app.getTitle());
// Login to MyCitrix
app.clickLogin();
LoginUI.doMyCitrixLogin("a","b");
assertTrue(app.isTextPresent("Welcome to My Citrix!"));
assertTrue(app.isTextPresent("CITRIX TEST ACCOUNT1 >> ID:
3003908"));
// Logout from Mycitrix
app.clickLogout();
}
}
On Aug 19, 1:33 pm, satyadev <[email protected]> wrote:
> Hi,
>
> I divided whole modules as suggested in mail. Even though I am not
> able to click on specific element after refactoring UI.
>
> /**
> *
> */
> package com.citrix.tellurium.ui
>
> import org.tellurium.dsl.DslContext
>
> /**
> * @author satyadevs
> *
> */
> public class CitrixHomePageUI extends DslContext{
>
> public void defineUi() {
> // Citrix home page Top Menus
> ui.Container(uid: "CitrixHomePage", clocator: [tag: "div", id:
> "supnav"])
> {
> UrlLink(uid: "LoginLink", clocator: [tag: "a", text:
> "Log in",
> header: "/default:sp...@id='unav_login']", href: "/English/mycitrix/
> index.asp"])
> Container(uid: "TopMenu", clocator: [tag: "div",
> class: "qmmc",
> id: "qm1"])
> {
> UrlLink(uid: "MyCitrixLink", clocator: [tag:
> "a", text: "My
> Citrix", position: "7", direct: "true", href: "/English/mycitrix/
> index.asp?ntref=hp_util_US"])
> UrlLink(uid: "GlobalSitesLink", clocator:
> [tag: "a", text:
> "Global Sites", position: "6", direct: "true", href: "/global"])
> }
> UrlLink(uid: "LogOutLink", clocator: [tag: "a", text:
> "Log Out",
> href: "/English/mycitrix/logout.asp"])
> }
>
> }
>
> //Add your methods here
>
> public void clickMyCitrix(){
> click "CitrixHomePage.TopMenu.MyCitrixLink"
> waitForPageToLoad()
> }
> public void clickLogin(){
> click "CitrixHomePage.LoginLink"
> waitForPageToLoad()
> }
> public void clickLogout(){
> click "CitrixHomePage.LogOutLink"
> waitForPageToLoad()
> }
>
> }
>
> package com.citrix.tellurium.ui
>
> import org.tellurium.dsl.DslContext
>
> /**
> * @author satyadevs
> *
> */
> public class LoginModuleUI extends DslContext{
>
> public void defineUi()
> {
> // Login Form
> ui.Form(uid: "LoginForm", clocator: [tag: "form", id:
> "MiniLogin",
> name: "LOGIN"], group: "true")
> {
> Container(uid: "LoginSection", clocator: [tag: "div",
> class:
> "primary"])
> {
> InputBox(uid: "UserName", clocator: [tag:
> "input", direct:
> "true", type: "text", id: "userid", name: "userid"])
> InputBox(uid: "Password", clocator: [tag:
> "input", direct:
> "true", type: "password", id: "password", name: "password"])
> InputBox(uid: "LoginBtn", clocator: [tag:
> "input", direct:
> "true", type: "image", name: "loginbtn", src: "/site/resources/
> v4_includes/login_btn.gif"])
> }
> UrlLink(uid: "NewUsers", clocator: [tag: "a", text:
> "New Users",
> href: "/English/myCitrix/loginNewUser.asp"])
> }
> }
> //Add your methods here
> public void doMyCitrixLogin(String UserName,String Password){
>
> type "LoginForm.LoginSection.UserName",UserName
> type "LoginForm.LoginSection.Password",Password
> click "LoginForm.LoginSection.LoginBtn"
> waitForPageToLoad()
>
> }
>
> }
>
> /**
> *
> */
> package com.citrix.tellurium.ui
>
> import org.tellurium.dsl.DslContext
>
> /**
> * @author satyadevs
> *
> */
> public class HomePageSectionUI extends DslContext
> {
>
> public void defineUi()
> {
> ui.Container(uid: "HomePageSection", clocator: [tag: "div",
> class:
> "qmmc", id: "qm0"])
> {
> UrlLink(uid: "ProductsAndSolutionsLink", clocator:
> [tag: "a",
> text: "Products & Solutions", href: "/English/ps2/products/product.asp?
> contentID=683711&ntref=hp_nav_US"])
> UrlLink(uid: "DownloadsLink", clocator: [tag: "a",
> text:
> "Downloads", href: "/English/ss/downloads/index.asp?ntref=hp_nav_US"])
> // TextBox(uid: "HomePageFlash", clocator: [tag:
> "embed", type:
> "application/x-shockwave-flash", name: "flashpromo", id: "flashpromo",
> src: "/site/resources/dynamic/homeLeftPromos/
> 980x290_SimplicityIsPower2.swf"])
> }
> }
>
> //Add your methods here
> public void clickProductsAndSolutions()
> {
> click "HomePageSection.ProductsAndSolutionsLink"
> waitForPageToLoad()
> }
>
> }
>
> On Aug 18, 6:31 pm, John <[email protected]> wrote:
>
> > Hope some Tellurium users could share with you their experiences on
> > UI module maintenance. Basically, you should divide the web page into
> > many small UI modules for easier testing and maintenance.
>
> > Trump 0.1.0 does have some issues and we did not get enough feedback.
> > With your live site, certainly we can debug Trump to find out what is
> > the problem
> > there. The obstacle is time. I am very busy with user support and many
> > other tasks.
> > It may take me some time before I get back to you. I will keep you
> > posted.
>
> > Thanks,
>
> > Jian
>
> > On Aug 18, 8:45 am, satyadev <[email protected]> wrote:
>
> > > Hi,
>
> > > can Any one provide best practices for UI modules maintenance?
> > > site Demo show's only part of one frame example. things will be
> > > difficult once real website with lot frames and containers.
>
> > > regards,
> > > Satyadev
>
> > > On Aug 14, 7:32 pm, Vivek <[email protected]> wrote:
>
> > > > I dont need to put everything in one module. Try splitting them into
> > > > separates UI modules like
> > > > module1
> > > > My Citrix/Log in
> > > > module 2
> > > > Products & Solutions
> > > > module 3
> > > > Username, Password, Log in
>
> > > > Record for the first module then click Generate and Customize. Clear
> > > > the recorded elements and then record for the second module...
> > > > Generate and Customize
>
> > > > You can put three modules in the defineUI method... see if this will
> > > > solve the problem...
>
> > > > Thanks,
> > > > Vivek
>
> > > > On Aug 14, 3:19 am, satyadev <[email protected]> wrote:
>
> > > > > Hi All,
>
> > > > > I am facing lot of trouble with TrUmp for defining object map. I am
> > > > > not able to customize properties. UI operations are not consistly
> > > > > updating UI element in customizer pane.
>
> > > > > Eample URL :http://www.citrix.com/English/ss/downloads/index.asp
>
> > > > > Start Recording using trump IDE.
> > > > > learn UI elements like Login/MyCtirix/downlaods/Product&solutions/
> > > > > username/Password/login
>
> > > > > we got follwing UI object code.
>
> > > > > Container(uid: "root", clocator: [tag: "div", id: "container"]){
> > > > > Container(uid: "T4d", clocator: [tag: "div", id: "header"]){
> > > > > Container(uid: "TopLeftmenu", clocator: [tag: "div",
> > > > > direct: "true",
> > > > > id: "supnav"]){
> > > > > UrlLink(uid: "a0", clocator: [tag: "a", text:
> > > > > "My Citrix", href: "/
> > > > > English/mycitrix/index.asp?ntref=util"])
> > > > > UrlLink(uid: "a1", clocator: [tag: "a", text:
> > > > > "Log in", href: "/
> > > > > English/mycitrix/index.asp"])
> > > > > }
> > > > > Container(uid: "T4dd", clocator: [tag: "div", direct:
> > > > > "true", class:
> > > > > "qmmc", id: "qm0"]){
> > > > > UrlLink(uid: "a2", clocator: [tag: "a", text:
> > > > > "Products &
> > > > > Solutions", href: "/English/ps2/products/product.asp?
> > > > > contentID=683711", class: "qmparent qmactive"])
> > > > > UrlLink(uid: "a3", clocator: [tag: "a", text:
> > > > > "Downloads", href: "/
> > > > > English/ss/downloads/index.asp"])
> > > > > }
> > > > > }
> > > > > Form(uid: "T4dddddd", clocator: [tag: "form", id:
> > > > > "MiniLogin", name:
> > > > > "LOGIN", action: "https://www.citrix.com/English/myCitrix/
> > > > > doLogin.asp", method: "post"]){
> > > > > InputBox(uid: "input4", clocator: [tag: "input",
> > > > > type: "text",
> > > > > class: "formelement", id: "userid", name: "userid"])
> > > > > InputBox(uid: "input5", clocator: [tag: "input",
> > > > > type: "password",
> > > > > class: "formelement", id: "password", name: "password"])
> > > > > InputBox(uid: "input6", clocator: [tag: "input",
> > > > > type: "image",
> > > > > value: "1", name: "loginbtn", src: "/site/resources/v4_includes/
> > > > > login_btn.gif"])
> > > > > }
>
> > > > > }
>
> > > > > Now Click on Genrate and Customize
>
> > > > > Select Login url Link item observe that add one extra attribute like
> > > > > header it won't reflect in UI element.
>
> > > > > I am trapped here all my UI elements stop respond customization.
>
> > > > > Can Anybody help me to over come above situation.
>
> > > > > regards,
> > > > > Satyadev
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"tellurium-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/tellurium-users?hl=en
-~----------~----~----~----~------~----~------~--~---