December 31, 2015

Automate Amazon: Writing a Sign In Test

This post is fourth of a series of nine. Need to go back to the beginning?

Drafting a Login Test for Amazon.com won't be as easy as drafting one for Dave Haeffner's mock site, The-Internet. There needs to be a lot more infrastructure put in place besides the CommonUtils library we worked on in the last blog post. Also, Amazon.com use the word "Login". Instead, they use the phrase Sign In.


Sketch the SignIn Steps

Here's how you log into sign into Amazon.com's site:
  1. Go to Amazon.com's home page, http://www.amazon.com/
  2. Hover your cursor over the "Your Account" block, and click the sign in button.
  3. Once you are on the sign in page, enter the username, password into the appropriate text boxes. 
  4. Select the Sign In button. 
I noticed after following this process a few times, that there sometimes was a bit of a lag, so we might want to wait until the username and password actually appear before entering a username and password. 

Review: How to find selectors of Web Elements

Let's say we want to know about what selectors to use for the username, password, and Sign In button on the Sign In page.

You can find the ids and cssSelectors of an object by:
  • Opening the Firefox browser with the Firebug and Firepath plugin. 
  • Going to http://www.amazon.com/ and pressing the "Sign In" button.
  • Right clicking and selecting on the textboxes or the button and selecting "Inspect in Firepath".
  • With the "Firepath" tab, make sure "CSS" is selected. 
We can see that the following web elements have these values:
  • Email textbox: cssSelector #ap_email
  • Password textbox: cssSelector #ap_password
  • Sign In Button: cssSelector #signInSubmit
... Yes, these values are technically IDs and not CSS Selectors. Adding the '#' makes them CSS Selectors. At my workplace, I find that IDs of web elements are constantly changing, since the ID is usually a numbered index. CSS Values seem to change less, so I got in the habit of leaning towards CSS Selectors over IDs. 


Sketch out the Infrastructure Needed

Judging from what we have listed above, we will need the following classes written:
  • A Test Class, PurchaseOrderTest, that stores the tests.
  • A class to store the username and password of test users, and a class to retrieve the data.
  • Methods in CommonUtilites that handle sending keys to textboxes, clicking on buttons, and hovering-and-clicking on sections of the home page.
  • Two classes called Page Objects to store how the HomePage and the LoginPage interacts with the DOM.
  • We can bundle together commonly used methods in an Actions class, and call it OrderActions.

What our Directory Structure Will Look Like


After we store the User Properties, create the Actions classes, and create the test class, our directory structure could look like:

src/test/java

  • actions
    • OrderActions
  • base
    • LoadProperties
  • pages
    • HomePage
    • SignInPage
  • properties
    • user.properties
  • testcases
    • PurchaseOrderTest
  • utils
    • CommonUtils
    • DriverUtils



Store the User Properties


Store the Username and Password in a text file called a Properties file, user.properties. Create a class called LoadProperties in order to handle the reading and the writing of the file. (Code formatting from http://codeformatter.blogspot.com/).

java / properties / user.properties:
1:  tester23.username=amzn.tester23@gmail.com  
2:  tester23.password=amzntester23  

java / base / LoadProperties.java
1:  package base;  
2:  import org.apache.commons.lang3.StringUtils;  
3:  import java.io.FileInputStream;  
4:  import java.io.FileNotFoundException;  
5:  import java.io.IOException;  
6:  import java.util.Properties;  
7:  import java.util.Set;  
8:  /**  
9:   * Created by tmaher on 12/22/2015.  
10:   */  
11:  public class LoadProperties {  
12:    public static Properties user = loadProperties("src/test/java/properties/user.properties");  
13:    private static Properties loadProperties(String filePath) {  
14:      Properties properties = new Properties();  
15:      try {  
16:        FileInputStream f = new FileInputStream(filePath);  
17:        properties.load(f);  
18:      } catch (FileNotFoundException e) {  
19:        e.printStackTrace();  
20:      } catch (IOException e){  
21:        e.printStackTrace();  
22:      }  
23:      return properties;  
24:    }  
25:    public static String getPropertyValue(String path, String key){  
26:      Properties p = loadProperties(path);  
27:      String result = "";  
28:      Set<String> values = p.stringPropertyNames();  
29:      for(String value : values){  
30:        if(StringUtils.equalsIgnoreCase(value, key)){  
31:          result = p.getProperty(value);  
32:          break;  
33:        }  
34:      }  
35:      return result;  
36:    }  
37:  }  
All Source Code can be found in T.J. Maher's Automate-Amazon repository. 

Next, we can work from the bottom level to the top:
  • Adding methods to CommonUtils
  • Abstracting each page into a PageObject such as HomePage and SignInPage
  • Bundling the methods in the PageObjects to create repeatable Actions we can use.
  • Compose the Actions methods into a test we can run. 

1. Add to CommonUtil 

Add to CommonUtils methods the basic building blocks our page objects will call. All Selenium WebDriver calls will be encapsulated in a method on CommonUtils.

  • Navigate to a URL

 public void navigateToURL(String URL) {  
     try {  
       _driver.navigate().to(URL);  
     } catch (Exception e) {  
       System.out.println("FAILURE: URL did not load: " + URL);  
       throw new TestException("URL did not load");  
     }  
   }  

  • SendKeys to a Textbox, given the web element by selector, and the value.

 public void sendKeys(By selector, String value) {  
     WebElement element = getElement(selector);  
     clearField(element);  
     try {  
       element.sendKeys(value);  
     } catch (Exception e) {  
       throw new TestException(String.format("Error in sending [%s] to the following element: [%s]", value, selector.toString()));  
     }  
 }  

  • Click on a button, given the web element by selector

 public void click(By selector) {  
     WebElement element = getElement(selector);  
     waitForElementToBeClickable(selector);  
     try {  
       element.click();  
     } catch (Exception e) {  
       throw new TestException(String.format("The following element is not clickable: [%s]", selector));  
     }  
   }  

  • Hovers a cursor over a web element and click it
 public void scrollToThenClick(By selector) {  
     WebElement element = _driver.findElement(selector);  
     actions = new Actions(_driver);  
     try {  
       ((JavascriptExecutor) _driver).executeScript("arguments[0].scrollIntoView(true);", element);  
       actions.moveToElement(element).perform();  
       actions.click(element).perform();  
     } catch (Exception e) {  
       throw new TestException(String.format("The following element is not clickable: [%s]", element.toString()));  
     }  
   }  


  • Waits Until an Element is Visible
 public void waitForElementToBeVisible(By selector) {  
     try {  
       wait = new WebDriverWait(_driver, timeout);  
       wait.until(ExpectedConditions.presenceOfElementLocated(selector));  
     } catch (Exception e) {  
       throw new NoSuchElementException(String.format("The following element was not visible: %s", selector));  
     }  
   }  

2. Page Objects

Now that the Selenium WebDriver functionality has been encapsulated, we can extend the page objects to use CommonUtils. We are inheriting from CommonUtilites the above methods.

These Page Objects are the only places that should interact with the web elements on the page, evaluating if the web elements are there, checking and setting their values.

On the top of each Page Object, we have the selectors for each web element. They are each declared private because they are only to be accessed in this page object. They are also declared final because they are constant.

By is a reserved word in the Selenium library. Web elements can be found By.id, By.cssSelector, By.name, etc.



HomePage:
1:  package pages;  
2:  import enums.Url;  
3:  import org.openqa.selenium.By;  
4:  import utils.CommonUtils;  
5:  /**  
6:   * Created by tmaher on 12/21/2015.  
7:   */  
8:  public class HomePage extends CommonUtils {  
9:    private final By YOUR_ACCOUNT = By.id("nav-link-yourAccount");  
10:    private final By SHOPPING_CART_ICON = By.cssSelector("#nav-cart");  
11:    private final By SHOPPING_CART_COUNT = By.cssSelector("#nav-cart > #nav-cart-count");  
12:    public HomePage(){  
13:    }  
14:    public void navigateToHomePage() {  
15:      String url = Url.BASEURL.getURL();  
16:      System.out.println("Navigating to Amazon.com: " + url);  
17:      navigateToURL(url);  
18:    }  
19:    public void navigateToSignInPage(){  
20:      System.out.println("HOME_PAGE: Selecting [YOUR_ACCOUNT] in navigation bar.");  
21:      scrollToThenClick(YOUR_ACCOUNT);  
22:      System.out.println("HOME_PAGE: Navigating to the SIGNIN_PAGE.\n");  
23:    }  
24:  }  

SignInPage:
1:  package pages;  
2:  import org.openqa.selenium.By;  
3:  import utils.CommonUtils;  
4:  /**  
5:   * Created by tmaher on 12/21/2015.  
6:   */  
7:  public class SignInPage extends CommonUtils {  
8:    private final By USERNAME = By.cssSelector("#ap_email");  
9:    private final By PASSWORD = By.cssSelector("#ap_password");  
10:    private final By SIGNIN_BUTTON = By.cssSelector("#signInSubmit");  
11:    public void enterUsername(String userName){  
12:      System.out.println("SIGNIN_PAGE: Entering username: " + userName);  
13:      waitForElementToBeVisible(USERNAME);  
14:      sendKeys(USERNAME, userName);  
15:    }  
16:    public void enterPassword(String password){  
17:      System.out.println("SIGNIN_PAGE: Entering password.");  
18:      waitForElementToBeVisible(PASSWORD);  
19:      sendKeys(PASSWORD, password);  
20:    }  
21:    public void clickSignInButton(){  
22:      System.out.println("SIGNIN_PAGE: Clicking the [SIGN_IN] button.\n");  
23:      click(SIGNIN_BUTTON);  
24:    }  
25:  }  

3. Actions Classes

When someone enters a username into the SignIn page, it's a safe bet that they are going to want to enter a password, too, along with clicking on the SignIn button. If someone wants to write a test that explicitly asserts that yes, we can enter text into the username textbox, they can do that by accessing the SignIn page object. But most of the time, those three methods will be grouped together.

Below, we group them together in a method called loginAs(String username, String password). Pass in a username and password, and it will do the rest.

OrderActions.java
1:  package actions;  
2:  import pages.*;  
3:  /**  
4:   * Created by tmaher on 12/21/2015.  
5:   */  
6:  public class OrderActions {  
7:    public void navigateToHomePage(){  
8:      HomePage homePage = new HomePage(); // Instantiate a new HomePage page object 
9:      homePage.navigateToHomePage();  
10:    }  
11:    public void loginAs(String username, String password){  
12:      HomePage homePage = new HomePage();  // Instantiate a new HomePage page object 
13:      SignInPage signIn = new SignInPage();  // Instantiate a new SignInPage page object 
14:      homePage.navigateToSignInPage();  
15:      signIn.enterUsername(username);  // Use the methods on the SignInPage
16:      signIn.enterPassword(password);  
17:      signIn.clickSignInButton();  
18:    }  
19:  }  


4. PurchaseOrderTest: test_Login

Now that we have all the components, we can start assembling the pieces in the Actions class to form a test.

PurchaseOrderTest.java
1:  package testcases;  
2:  import base.LoadProperties;  
3:  import org.openqa.selenium.WebDriver;  
4:  import actions.*;  
5:  import org.testng.annotations.AfterClass;  
6:  import org.testng.annotations.BeforeClass;  
7:  import org.testng.annotations.Test;  
8:  import utils.DriverUtils;  
9:  import static org.testng.Assert.assertEquals;  
10:  /**  
11:   * Created by tmaher on 12/14/2015.  
12:   */  
13:  public class PurchaseOrderTest {  
14:    public WebDriver driver;  
15:    @BeforeClass  
16:    public void setUp(){  
17:      driver = DriverUtils.getDriver();  
18:    }  
19:    @Test()  
20:    public void test_Login(){  
21:      OrderActions orderActions = new OrderActions();  
22:      String username = LoadProperties.user.getProperty("tester23.username");  
23:      String password = LoadProperties.user.getProperty("tester23.password");  
24:      orderActions.navigateToHomePage();  
25:      orderActions.loginAs(username, password);  
26:   
27:    }  
28:    @AfterClass  
29:    public void tearDown(){  
30:      driver.quit();  
31:    }  
32:  }  
All Source Code can be found in T.J. Maher's Automate-Amazon repository. 


5. Run the Test


Now that everything is all set, we can right click on the test method for test_Login and run the test:

 Navigating to Amazon.com: http://www.amazon.com  
 HOME_PAGE: Selecting [YOUR_ACCOUNT] in navigation bar.  
 HOME_PAGE: Navigating to the SIGNIN_PAGE.  
 SIGNIN_PAGE: Entering username: amzn.tester23@gmail.com  
 SIGNIN_PAGE: Entering password.  
 SIGNIN_PAGE: Clicking the [SIGN_IN] button.  
All Source Code can be found in T.J. Maher's Automate-Amazon repository. 

... Normally, we would then assert if we are on the correct page or not. I didn't add that into the test since what I really wanted to do was the next blog entry.

Until then, happy coding!

View the (mostly) Completed Test Code:


NEXT: Setup Objects to Handle Various Products, such as Books! >> 


-T.J. Maher
 Sr. QA Engineer, Fitbit
 Boston, MA

// Automated tester for [ 8 ] month and counting!

Please note: 'Adventures in Automation' is a personal blog about automated testing. It is not an official blog of Fitbit.com



204 comments:

1 – 200 of 204   Newer›   Newest»
dataexpert said...


Very nice job... Thanks for sharing this amazing and educative blog post! ExcelR Pune Digital Marketing Course

Ivap Apps said...
This comment has been removed by the author.
Web Design Company said...

Very Nice!! Thanks for Sharing..

Ivap Apps | Web Design & Development Company

Tamil Baby Names said...

Great!! Thanks for sharing with us...

பெயரி | Tamil Baby Names | Baby Names in Tamil | Peyari

Data Science Institute In Banglore said...

Such a very useful article. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article.
Data Science Certification in Bangalore

Shanejo said...

It's very useful blog post with inforamtive and insightful content and i had good experience with this information.I have gone through CRS Info Solutions Home which really nice. Learn more details About Us of CRS info solutions. Here you can see the Courses CRS Info Solutions full list. Find Student Registration page and register now. Go through Blog post of crs info solutions. I just read these Reviews of crs really great. You can now Contact Us of crs info solutions. You enroll for Pega Training at crs info solutions.

Gaurav said...

I feel very grateful that I read this. It is very helpful and very informative and I really learned a lot from it.
data science course in indore

360digitmgas said...

Really nice and interesting post. I was looking for this kind of information and enjoyed reading this one. Keep posting. Thanks for sharing. click here

Unknown said...

If your looking for Online Illinois license plate sticker renewals then you have need to come to the right place.We offer the fastest Illinois license plate sticker renewals in the state.
360digitmg

Data Science training - 360DigiTMG said...

Highly appreciable regarding the uniqueness of the content. This perhaps makes the readers feels excited to get stick to the subject. Certainly, the learners would thank the blogger to come up with the innovative content which keeps the readers to be up to date to stand by the competition. Once again nice blog keep it up and keep sharing the content as always.

360DigiTMG Business Analytics Course

abid said...

Thank you for helping people get the information they need. Great stuff as usual. Keep up the great work!!!
click here

Mallela said...

Very informative content and intresting blog post.Data science training in Mumbai

samwillson said...

Thank you so much for this excellent Post and all the best for your future.
Noida Web Development Company

Dominick said...

great

360DigiTMGNoida said...

Hello there to everyone, here everybody is sharing such information, so it's fussy to see this webpage, and I used to visit this blog day by day
data science course noida

360DigiTMG said...

Nice article. I liked very much. All the information given by you are really helpful for my research. keep on posting your views.
data scientist training malaysia

Data Science said...

I am glad to discover this page. I have to thank you for the time I spent on this especially great reading !! I really liked each part and also bookmarked you for new information on your site.
Data Science Training in Chennai

360digitmgdelhi said...

Wow, amazing post! Really engaging, thank you.
best data science course in delhi

Srigokul said...


Nice Blog. Thanks for Sharing this useful information...

Data science training in chennai
Data science course in chennai

saketh said...

I have a mission that I’m just now working on, and I have been at the look out for such information ExcelR Data Analyst Course

Digital Marketing training - 360DigiTMG said...

Wonderful blog found to be very impressive to come across such an awesome blog. I should really appreciate the blogger for the efforts they have put in to develop such an amazing content for all the curious readers who are very keen of being updated across every corner. Ultimately, this is an awesome experience for the readers. Anyways, thanks a lot and keep sharing the content in future too.

Digital Marketing training in Bhilai

Photocopiers Machine on Hire in Delhi said...

Continental Copier Co. is committed to provide indispensable quality products. This is achieved by providing its clients with world-class printers and remanufactured products back up by fast and reliable technical support and product warranty

Tyre shop in Noida extension said...

We are providing the best Tyre shop in Noida Extension. Bstyres offers a wide variety of Tyres, Car Service, Car Repair, Car Denting Painting from best car workshops and trained car mechanics in the city

data scientist london said...

Wonderful blog found to be very impressive to come across such an awesome blog. I should really appreciate the blogger for the efforts they have put in to develop such an amazing content for all the curious readers who are very keen of being updated across every corner. Ultimately, this is an awesome experience for the readers. Anyways, thanks a lot and keep sharing the content in future too.
Digital Marketing Training

madhavi reddy said...

I Want to leave a little comment to support and wish you the best of luck.we wish you the best of luck in all your blogging endeavors.
business analytics course in bangalore

madhavi reddy said...

I Want to leave a little comment to support and wish you the best of luck.we wish you the best of luck in all your blogging endeavors.
data science in bangalore

sathishkumar said...

Thanks for the blog and it is really a very useful one.

TOGAF Training In Bangalore | TOGAF Online Training

Oracle Cloud Training In Bangalore | Oracle Cloud Online Training

Power BI Training In Bangalore | Power BI Online Training

Alteryx Training In Bangalore | Alteryx Online Training

API Training In Bangalore | API Online Training

Ruby on Rails Training In Bangalore | Ruby on Rails Online Training

Dorothy said...

I think this is the best article today. Thanks for taking your own time to discuss this topic, I feel happy about that curiosity has increased to learn more about this topic. Keep sharing your information regularly for my future reference.Excellent blog admin. This is what I have looked. Check out the following links for QA services
Test automation software
Best automated testing software
Mobile app testing services

madhavi reddy said...


I Want to leave a little comment to support and wish you the best of luck.we wish you the best of luck in all your blogging endeavors.
data science course in bangalore with placement

Anonymous said...


I really want to appreciate the way to write this
omni-channel
ivrs
ip-pbx
Call Center Software
Call Center Solution
Call Center Solutions

Data Science Course in Bhilai - 360DigiTMG said...

Truly mind blowing blog went amazed with the subject they have developed the content. These kind of posts really helpful to gain the knowledge of unknown things which surely triggers to motivate and learn the new innovative contents. Hope you deliver the similar successive contents forthcoming as well.

data science in bangalore

madhavi reddy said...

I Want to leave a little comment to support and wish you the best of luck.we wish you the best of luck in all your blogging endeavors.
data science institute in bangalore

Mallela said...

Thanks for posting the best information and the blog is very helpful.data science institutes in hyderabad

Datascience Books said...

Great post i must say and thanks for the information. Education is definitely a sticky subject. However, is still among the leading topics of our time. I appreciate your post and look forward to more.
Data Science Course in Bangalore

Deekshitha said...

Informative blog
data analytics courses in hyderabad

data analytics books said...

I am a new user of this site, so here I saw several articles and posts published on this site, I am more interested in some of them, hope you will provide more information on these topics in your next articles.
data analytics training in bangalore

InstituteBlr said...

I just got to this amazing site not long ago. I was actually captured with the piece of resources you have got here. Big thumbs up for making such wonderful blog page!
data analytics course in bangalore

Data Science said...

I am glad to discover this page. I have to thank you for the time I spent on this especially great reading !! I really liked each part and also bookmarked you for new information on your site.
Data Science Training in Chennai

Pallavi reddy said...

i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
cyber security training in bangalore

Datascience Course Analyst said...

Great post i must say and thanks for the information. Education is definitely a sticky subject. However, is still among the leading topics of our time. I appreciate your post and look forward to more.
Data Science Course in Bangalore

Pallavi reddy said...

i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
data scientist course in bangalore

Mallela said...

Thanks for posting the best information and the blog is very helpful.artificial intelligence course in hyderabad

traininginstitute said...

I see some amazingly important and kept up to a length of your strength searching for in your on the site

digital marketing courses in hyderabad with placement

Datascience Course Analyst said...

Great post i must say and thanks for the information. Education is definitely a sticky subject. However, is still among the leading topics of our time. I appreciate your post and look forward to more.
Data Science Course in Bangalore

Deekshitha said...

Informative blog
ai training in hyderabad

Deekshitha said...

Informative blog
ai training in hyderabad

Pallavi reddy said...

i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
best data science courses in bangalore

Maradona Jons said...

อีกทั้งเรายังให้บริการ เกมสล็อต ยิงปลา แทงบอลออนไลน์ รองรับทุกการใช้งานในอุปกรณ์ต่าง ๆ HTML5 คอมพิวเตอร์ แท็บเล็ต สมาทโฟน คาสิโนออนไลน์ และมือถือทุกรุ่น เล่นได้ตลอด 24ชม. ไม่ต้อง Downloads เกมส์ให้ยุ่งยาก ด้วยระบบที่เสถียรที่สุดในประเทศไทย

Maradona Jons said...

หาคุณกำลังหาเกมส์ออนไลน์ที่สามารถสร้างรายได้ให้กับคุณ เรามีเกมส์แนะนำ เกมยิงปลา รูปแบบใหม่เล่นง่ายบนมือถือ คาสิโนออนไลน์ บนคอม เล่นได้ทุกอุปกรณ์รองรับทุกเครื่องมือ มีให้เลือกเล่นหลายเกมส์ เล่นได้ทั่วโลกเพราะนี้คือเกมส์ออนไลน์แบบใหม่ เกมยิงปลา

InstituteBlr said...

I just got to this amazing site not long ago. I was actually captured with the piece of resources you have got here. Big thumbs up for making such wonderful blog page!
data analytics course in bangalore

Marty Sockolov said...

The website does not have a policy to charge a membership fee or any fee at all, if the players encounter the charge by the team or the website staff, they can report it. Football สมัคร ufabet betting here knows the results immediately. Takes a long time to complete Since we have an automated system that can calculate everything immediately.

Pallavi reddy said...

i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
tableau training in bangalore

Marty Sockolov said...
This comment has been removed by the author.
Marty Sockolov said...

Baccarat is money making plus it's spectacular availability. Optimal In your case it's being sold that you'll find pretty fascinating alternatives. And that is regarded as something that's very different And it's really a little something that's very happy to hit with Likely the most excellent, too, is a very positive choice. Furthermore, it's a really fascinating solution. It's the simplest way which could earn money. Superbly prepar The number of best-earning baccarat is the accessibility of making the most cash. Almost as possible is very ideal for you An alternative which may be guaranteed. To a wide variety of performance and supply And see outstanding benefits as well.บาคาร่า
ufa
ufabet
แทงบอล
แทงบอล
แทงบอล

Deekshitha said...

Informative blog
best digital marketing institute in hyderabad

data analytics books said...

I am a new user of this site, so here I saw several articles and posts published on this site, I am more interested in some of them, hope you will provide more information on these topics in your next articles.
data analytics training in bangalore

aswani said...

Excellent material with unique content, and it is really important to be aware of blog-based material.

1000 Social BookMarking Sites List

Maradona Jons said...

ได้โดยที่จะทำให้คุณนั้นสามารถสร้างกำไรจากการเล่นเกมส์เดิมพันออนไลน์ได้เราแนะนำเกมส์ชนิดนี้ให้คุณได้รู้จักก็เพราะว่าเชื่อว่าทุกคนนั้นจะต้องรู้วิธีการเล่นและวิธีการเอาชนะเกมม สล็อต าแทบทุกคนเพราะเราเคยเล่นกันมาตั้งแต่เด็กเด็กหาคุณได้เล่นเกมส์คาสิโนออนไลน์ที่คุณนั้นคุ้นเคยหรือจะเป็นสิ่งที่จะทำให้คุณสามารถที่จะได้กำไรจากการเล่นเกมได้มากกว่าที่คุณไปเล่นเกมส์คาสิโนออนไลน์ที่คุณนั้นไม่เคยเล่นมาก่อนและไม่คุ้นเคย เราจึงคิดว่าเกมส์ชนิดนี้เป็นเกมส์ที่น่าสนใจมากๆที่เราอยากจะมาแนะนำให้ทุกคนได้รู้จักและได้ใช้บริการ

Pallavi reddy said...

i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
artificial intelligence training in chennai

360DigiTMG-Pune said...

You totally coordinate our desire and the assortment of our data.
ai course in pune

traininginstitute said...

I want to say thanks to you. I have bookmark your site for future updates.
business analytics course

Deekshitha said...

Informative blog
ai training in hyderabad

Deekshitha said...

Informative blog
data science course in Nashik

Pallavi reddy said...

i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
artificial intelligence training in chennai

thomas said...

The steps you need to take to reopen your closed credit card depend on why – and who – closed it. I'm going to help you through this process. There are no guarantees when it comes to credit, but you'll know you made a valiant effort.

fishyfacts4u.com
fishyfacts4u.com
fishyfacts4u.com
fishyfacts4u.com
fishyfacts4u.com
fishyfacts4u.com
fishyfacts4u.com
fishyfacts4u.com
fishyfacts4u.com
fishyfacts4u.com

thomas said...

One cool feature is Dynamic Text. This allows the user’s search query to be inserted automatically into the landing page as part of a pay per click campaign.

emagazinehub.com
emagazinehub.com
emagazinehub.com
emagazinehub.com
emagazinehub.com
emagazinehub.com
emagazinehub.com
emagazinehub.com
emagazinehub.com
emagazinehub.com

Data Science Course in Bhilai - 360DigiTMG said...

Stupendous blog huge applause to the blogger and hoping you to come up with such an extraordinary content in future. Surely, this post will inspire many aspirants who are very keen in gaining the knowledge. Expecting many more contents with lot more curiosity further.

data science course in faridabad

thomas said...

“Business credit card fees may be higher than consumer credit card fees,” says Gerri Detweiler, education director for Nav, which helps business owners build credit. “Business owners often spend more, and as a result, they often want premium perks from their cards. Those can come with a price.”

inewshunter.com
inewshunter.com
inewshunter.com
inewshunter.com
inewshunter.com
inewshunter.com
inewshunter.com
inewshunter.com
inewshunter.com
inewshunter.com

thomas said...

Self-employed individuals (full time or part time) are eligible for scores of tax deductions. That means your freelance projects or side gig as a ride-share driver could land you considerable tax savings.

juicyfactor.com
juicyfactor.com
juicyfactor.com
juicyfactor.com
juicyfactor.com
juicyfactor.com
juicyfactor.com
juicyfactor.com
juicyfactor.com
juicyfactor.com

tejaswani blogs said...

I was reading through some of your content on this blog and found it to be quite informative! Continue to set up.

digital marketing training in hyderabad
digital marketing course in ameerpet

thomas said...

Prior to the passage of the Tax Cuts and Jobs Act of 2017, some newly married couples received an unpleasant surprise at tax time. Spouses who earned similar amounts of money – especially those considered high earners – often found themselves subject to a marriage tax penalty.

localnewsbuzz.com
localnewsbuzz.com
localnewsbuzz.com
localnewsbuzz.com
localnewsbuzz.com
localnewsbuzz.com
localnewsbuzz.com
localnewsbuzz.com
localnewsbuzz.com
localnewsbuzz.com

Mallela said...

Thanks for posting the best information and the blog is very important.data science course in Lucknow

Priya Rathod said...

Awesome post, Great to Land here, Keep going, have a great Success.
Data Science Training in Hyderabad
Data Science Course in Hyderabad

Anonymous said...

This is so helpful for me. Thanks alot for sharing.
Trading for beginners
Best Web designing company in Hyderabad

Educational Services said...

This is one of my favourite and wonderful blog that I have everseen its a pleasure to visit such visit
Best Software Training Institutes

Anonymous said...

I enjoyed reading the post. Thanks for the awesome post.
Best Mobile App development company in Hyderabad
Best Web development company in Hyderabad

traininginstitute said...

I truly like you're composing style, incredible data, thankyou for posting.
data science training

Data Science Course in Bhilai - 360DigiTMG said...

Stupendous blog huge applause to the blogger and hoping you to come up with such an extraordinary content in future. Surely, this post will inspire many aspirants who are very keen in gaining the knowledge. Expecting many more contents with lot more curiosity further.

Data Science Certification in Bhilai

Data Science Course in Bhilai - 360DigiTMG said...

Extraordinary blog went amazed with the content that they have developed in a very descriptive manner. This type of content surely ensures the participants to explore themselves. Hope you deliver the same near the future as well. Gratitude to the blogger for the efforts.

Data Science Training

Unknown said...

Exceptional work! Thanks for Sharing
Best Interior Designers

bestbus said...

This is the best blog post I have read till date. I'm glad to be here.
Best Web designing company in Hyderabad

thomas said...

Crowdfire is a feature-rich social media management tool that helps you increase your social media presence and grow engagement. Its features are particularly beneficial for individual social media users who want to remain active across various platforms without spending much time.

Gaming
Health & Fitness
Lifestyle
Movie
Music
News
Nutrition
Politics

bestbus said...

informative content. Thanks for sharing your knowledge.
Best Mobile App development company in Hyderabad

bestbus said...

creative blog post. Thanks for sharing.
Best Digital Marketing company in Hyderabad
Best web hosting company in Hyderabad

training institute said...

This post is very simple to read and appreciate without leaving any details out. Great work!
data scientist certification malaysia

Bestbus said...

Very useful info...thankyou for sharing..
online bus ticket booking

Educational Services said...

Thanks For Sharing such a wonderful article the way you presented is really amazing It was extraordinarily simple to discover my way around and amazingly clear, this is staggering!!!
Best Software Training Institutes

Priya Rathod said...

I was impressed by the information that you have on your site. It showed me how much experience you have in this area, and also gave me some options to consider.
AWS Training in Hyderabad
AWS Course in Hyderabad

Syahy's Blogger said...

Truly overall quite fascinating post. I was searching for this sort of data and delighted in perusing this one. Continue posting. Much obliged for sharing.artificial intelligence course in chennai

jony blaze said...

Great Article. I really liked your blog post! It was well organized, insightful and most of all helpful.
Artificial Intelligence Training in Hyderabad
Artificial Intelligence Course in Hyderabad

training institute said...

Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!
data science training in malaysia

Priya Rathod said...

I love this article. It's well-written. Thanks for all the effort you put into it! I enjoyed reading it and plan to read many more of your articles in the future.
Data Science Training in Hyderabad
Data Science Course in Hyderabad

bestbus said...

This is the best blog post I have read till date. I'm glad to be here.
Best Web designing company in Hyderabad
Best Web development company in Hyderabad

Anonymous said...

Very Cool info..Thankyou for sharing
online bus ticket booking

Unknown said...

Excellent Blog. Thanks for Sharing
Best Interior Designers

Anonymous said...

I read your post. It is very informative ad helpful to me. I admire the message valuable information you provided in your article
online bus ticket booking

business analytics course in chennai with placement said...

Extremely overall quite fascinating post. I was searching for this sort of data and delighted in perusing this one. Continue posting. A debt of gratitude is in order for sharing. data scientist course in delhi

360DigiTMGAurangabad said...

Thanks for the information about Blogspot very informative for everyone
ai course aurangabad

Data Science Course in Bhilai - 360DigiTMG said...

Mind-blowing went amazed with the content posted. Containing the information in its unique format with fully loaded valid info, which ultimately grabs the folks to go through its content. Hope you to keep up maintaining the standards in posting the content further too.

Data Science Course in Bangalore

data science said...



Great to become visiting your weblog once more, it has been a very long time for me. Pleasantly this article i've been sat tight for such a long time. I will require this post to add up to my task in the school, and it has identical subject along with your review. Much appreciated, great offer. data science course in nagpur

Educational Services said...

Thanks For Sharing such a wonderful article the way you presented is really amazing It was extraordinarily simple to discover my way around and amazingly clear, this is staggering!!!
Best Digital Marketing Training Institutes

dataanalytics said...

I have bookmarked your website because this site contains valuable information in it. I am really happy with articles quality and presentation. Thanks a lot for keeping great stuff. I am very much thankful for this site.
data scientist course in hyderabad

Arnold DK said...

Nice article, it is very useful and helpful informative for me. Thanks for sharing these information with all of us. whatsapp mod

Dev Kumar said...

I am sure it will help many people. Keep up the good work. It's very compelling and I enjoyed browsing the entire blog.
Business Analytics Course in Bangalore

kumal kumar said...

This is an informative and knowledgeable article. therefore, I would like to thank you for your effort in writing this article.
Best Digital Marketing Courses in Bangalore

traininginstitute said...

Excellent effort to make this blog more wonderful and attractive.
data scientist course

John smith said...

Very useful Post. I found so many interesting stuff in your Blog especially its discussion. Iodine Prep Pads

Iodine Prep Pads

Deekshitha said...

Informative blog
data analytics course in ludhiana

GBWhatsapp APK 2022 said...

It was best, the QA series was also good, Thanks for sharing this with us.

traininginstitute said...

Thank you for taking the time to publish this information very useful!
full stack developer course with placement


Tech Institute said...

A good blog always contains new and exciting information and as I read it I felt that this blog really has all of these qualities that make a blog.
Data Science Institutes in Bangalore

Training Institute Pune said...

Thank you for your post. This is excellent information. It is amazing and wonderful to visit your site.
Please Keep On Posting Digital Marketing Training Institute In Pune

traininginstitute said...

Always so interesting to visit your site.What a great info, thank you for sharing. this will help me so much in my learning
data science training in malaysia

asmaferoz said...

Thanks for sharing this blog. It was so informative.
Screening call
No screening means

TIP said...

Thank you for your post. This is excellent information. It is amazing and wonderful to visit your site.
Check out Digital Marketing Classes In Pune

Rahul said...

So luck to come across your excellent blog, glad i found it. Keep posting new articles. Good luck.
Data Science Course Details

Howell Daniel said...

برخورداری از اقلیم مناسب، آب و هوای معتدل و نزدیکی به کوه های البرز در کنار ساخت و ساز های آپارتمان نشینی و همچنین ایجاد شهرک های صنعتی آن را تبدیل به موقعیت مناسبی برای زندگی کردن و همچنین کسب درآمد نموده است. از این رو در سال های اخیر شاهد رشد جمعیت و مهاجرت از شهرهای اطراف به خصوص تهران به این شهرستان پهناور می باشیم.
فروش آپارتمان کرج

traininginstitute said...

Excellent effort to make this blog more wonderful and attractive.
full stack web development course in malaysia

data science bangalore said...

Extremely overall quite fascinating post. I was searching for this sort of data and delighted in perusing this one. Continue posting. A debt of gratitude is in order for sharing.business analytics course in rohtak

Reshma said...

Great post. Thanks for sharing.....
RPA Training in Bangalore
RPA Training in Pune

Unknown said...

Genuinely generally speaking very interesting post. I was looking for such an information and thoroughly enjoyed scrutinizing this one. Keep posting. Thankful for sharing.data science course in bhopal

Unknown said...

I want to leave a little comment to support and wish you the best of luck.we wish you the best of luck in all your blogging enedevors
data science course in faridabad

Digital Marketing Courses in Pune said...

Very good blog, thanks for sharing such a wonderful blog with us. Check out Digital Marketing Classes In Pune

data analytics course said...

You really make it look so natural with your exhibition however I see this issue as really something which I figure I could never understand. It appears to be excessively entangled and incredibly expansive for me.

PMP Training in Malaysia said...

360DigiTMG, the top-rated organisation among the most prestigious industries around the world, is an educational destination for those looking to pursue their dreams around the globe. The company is changing careers of many people through constant improvement, 360DigiTMG provides an outstanding learning experience and distinguishes itself from the pack. 360DigiTMG is a prominent global presence by offering world-class training. Its main office is in India and subsidiaries across Malaysia, USA, East Asia, Australia, Uk, Netherlands, and the Middle East.

Ganesh said...

I feel very grateful that I read this. It is very helpful and very informative and I really learned a lot from it, Keep posting new articles.
Data Analytics Course in Ahmedabad

Andrew Brew said...

I am here now and would just like to say thanks for a remarkable post and a all-round enjoyable blog (I also love the theme/design), I don’t have time to look over it all at the minute but I have saved it and also added your RSS feeds, so when I have time I will be back to read much more, Please do keep up the superb job. Checkout my blog Trickscage

Ganesh said...

I finally found a great article here. Quality postings are essential to get visitors to visit the website, that's what this website offers.
Data Science Training in Jabalpur

Harshan said...

Great blog with good information.

Pega Training in Chennai
Pega online Training

Unknown said...

In the wake of perusing your article, I was astounded. I realize that you clarify it well overall. What's more, I trust that different perusers will likewise encounter how I feel in the wake of perusing your article. business analytics course in mysore

data analytics courses malaysia said...

I am another customer of this site so here I saw various articles and posts posted by this site,I curious more energy for some of them trust you will give more information further.

Vijay said...

Really nice and interesting post. I was looking for this kind of information and enjoyed reading this one. Thanks for sharing.
Data Scientist Course in Jabalpur

sateesh said...

nice article web designing company hyderabad

Deekshitha said...

Informative blog
data analytics course in jamshedpur

360DigiTMGAurangabad said...

Informative article. Thanks for sharing with us.keep it up.
artificial intelligence course aurangabad

sateesh said...

nice article seo services hyderabad

Data Science said...

Amazingly by and large very interesting post. I was looking for such an information and thoroughly enjoyed examining this one.
Keep posting. An obligation of appreciation is all together for sharing.
data science training in gwalior

Ganesh said...

I am impressed by the information that you have on this blog. It shows how well you understand this subject.
Data Science Course in Ahmedabad

digital marketing course said...

I was basically inspecting through the web filtering for certain data and ran over your blog. I am flabbergasted by the data that you have on this blog. It shows how well you welcome this subject. Bookmarked this page, will return for extra.https://360digitmg.com/course/certification-program-on-digital-marketing

sateesh said...

nice article Mythological theme park in Telangana

Anonymous said...

Thanks for sharing the post.
web design company hyderabad

Unknown said...

Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!data analytics course in bhubaneswar

Data Science said...


Extremely overall quite fascinating post. I was searching for this sort of data and delighted in perusing this one.
Continue posting. A debt of gratitude is in order for sharing.
data analytics course in kolhapur

Training said...

Nice post. This is a great article and am pretty much pleased with your good work. Very helpful information. Thank you.
Best Data Science Courses

Unknown said...

Thanks a lot for one’s intriguing write-up. It’s actually exceptional. Searching ahead for this sort of revisions. data analytics course in kanpur

Nathan said...

Very educating blog, got lot of information thank you.
Data Scientist Course in Amritsar

sateesh said...

nice article Best places to visit near hyderabad

Professional Course said...

You know your projects stand out from the crowd. There is something special about them. I think they're all really cool!

Business Analytics Course in Durgapur

Technical Knowledge said...

You have done a great job and will definitely dig it and personally recommend to my friends. Thank You.
Data Science Online Training

360DigiTMGAurangabad said...

Thank you for excellent article.You made an article that is interesting.
data analytics training aurangabad

Sushil said...

I think this is a really good article. You make this information interesting and engaging. Thanks for sharing.
Data Science Course in India

Unknown said...

I am a new user of this site, so here I saw several articles and posts published on this site, I am more interested in some of them, will provide more information on these topics in future articles.
data science course in london

PMP Training in Malaysia said...

I am impressed by the information that you have on this blog. It shows how well you understand this subject. data analytics certification malaysia

EDU said...

This is really nice which is really cool blog and you have really helped a lot of people who visit the blog and give them useful information.
Data Science Training in Noida

360digiTMG.com said...

Your site is truly cool and this is an extraordinary moving article. data science training in kanpur

EDU said...

I want to thank you for your time in this wonderful read which is really appreciable and put you in your favorites to see new things on your blog, a must-have blog!
Business Analytics Course in Noida

data science course in patna said...


Without data analytics, you cannot imagine data science. In this process, data is examined to transform it into a meaningful aspect.


data science course in patna

Technical Knowledge said...

I really enjoyed reading this post and keep up the good work and let me know when you can post more articles or where I can find out more on the topic.
Data Science Online Course

gb whatsapp download latest version said...

gb whatsapp download latest version is a great app for everyone. We are convinced that everyone needs to keep in touch with their relatives, friends and colleagues on a daily basis

Courses said...

Really this article is truly one of the best in article history and am a collector of old "items" and sometimes read new items if i find them interesting which is one that I found quite fascinating and should be part of my collection. Very good work!
Data Scientist Course in Gurgaon

Unknown said...

It’s not how it’s about where? Get trained at 360DigiTMG, the best Data Analytics training institute, and experience the power of technical knowledge. Hone your skills with the ground-breaking curriculum. data analytics course in gurgaon

Training said...

Informative Post. The information you have posted is very useful and sites you have referred was good. Thanks for sharing.
Data Science Course with Placement

Technical Knowledge said...

Nice Post thank you very much for sharing such a useful information and will definitely saved and revisit your site and i have bookmarked to check out new things frm your post.
Data Science Course

EDU said...

Well done for this excellent article. and really enjoyed reading this article today it might be one of the best articles I have read so far and please keep this work of the same quality.
Data Analytics Course in Noida

Jack Bravo said...

Hopefully it will certainly be important for all. All the specifics are talked about in a convenient and simple to comprehend form.
url opener

Adnan Ijaz said...

I am providing it with my friends and colleagues as they are likewise looking for this kind of illuminative messages.
december umrah packages 2022

business analytics course in borivali said...

Start your career preparation with the best Data Science courses offered by 360DigiTMG. Aworld-class curriculum, LMS Access, assignments, and real-time project to grab a high-paying job.
business analytics course in borivali

Umrah Packages UK said...

Hopefully it will certainly be worthwhile for all. All the aspects are dispensed in a convenient as well as logical form.

Arthur George said...

Excellent aspects as well as fine points imparted in this condensed content. Awaiting more posts such as this one.
uwatchfree
playtubes

Courses said...

Nice Post i have read this article and if I can I would like to suggest some cool tips or advice and perhaps you could write future articles that reference this article. I want to know more!
Data Analytics Course in Gurgaon

Vaibhav Sinha said...

Awesome article! You are providing us very useful information. Thank you for sharing. Check out Digital Marketing Institute in Pune

Soumya Jindal said...

Nice article! Keep up the good work!
Financial Modeling Course

Nachiket said...

Thank you so much for providing such an amazing and informative blog.

Digital marketing courses in Nigeria

Disha said...

Such an informative blog. You can also Read about Digital marketing courses in Egypt

asley said...

Nice article and thank you for sharing this valuable information about automation testing. Keep testing. Content Writing Course in Bangalore

Asin said...

Nice reading your blog, keep it up. Digital marketing courses in Ahmedabad

Subhasis said...

Thanks for sharing the post about automation testing and it is so detailed you wrote every code as well. Digital marketing is one of the in demand course so if anyone looking to learn digital marketing in Dehradun with hands on training by the industry experts then visit us: Digital Marketing Course in Dehradun

puja H said...

Thank you for sharing this incredible blog on various types of Search Engine Marketing. It helped me in my projects on Digital marketing and improved my skills by increasing my knowledge. To know more visit -
Search Engine Marketing

Sia Vij said...

Your Writing skills are amazing! This blog was very useful! It was full of creative content!
Please keep posting good information in the future as well.
I will visit you often for sure!

Financial Modeling Courses in Mumbai

Adnan Ijaz said...

All of your posts are commendable and also comprise of excellent relevant information that grabs the emphasis of readers. Umrah Packages

Vikas said...

A very informative article on the user and technical aspects. Thanks for sharing. If anyone wants to learn Digital Marketing, please join the world-class curriculum and industry-standard professional skills. For more details, please visit
Digital marketing courses in france

Rohit said...

The article shared is really useful and knowledgeable. Keep up your skills in providing such amazing content. Digital marketing courses in Agra

Disha said...

Wow, you have written very informative content. Looking forward to reading all your blogs. If you want to read about Online SOP please click Online SOP

Mahil mithu said...

Well, I really appreciated for your great work. This topic submitted by you is helpful and keep sharing...
Cheap Uncontested Divorce in VA
Family Lawyer Cost

Himani said...

Thanks for sharing such a great article.
Digital Marketing courses in chandigarh

SrisLawyers said...

I appreciate your blog, from this session i got good knowledge. I admire your effort in writing valuable blogs. Thanks
conducción temeraria de virginia
divorce lawyers in virginia
abogados de divorcio en virginia

yskjain said...

Amazing article on automation
If anyone is keen on learning digital marketing. Here is one of the best courses offered by iimskills.
Do visit - Digital Marketing Courses in Kuwait

riona said...

Such a detailed content you shared with us. Thanks for the effort you put to write this valuable information. Keep it up. Get new skills with the Digital Marketing Courses in Delhi and understand the power of digital marketing. Visit:
Digital Marketing Courses in Delhi

Automobile Knowhow said...

This is by far one of the most engaging articles I have read in recent times. Just loved the quality of information provided and I must say you have noted down the points very precisely, keep posting more. Digital Marketing is now booming at a rapid pace, especially in Dubai, and many are now searching for the courses. So to ease their work I am leaving a link below for those who are searching for Digital Marketing courses in Abu Dhabi. All the best and keep learning, thank you.
Digital Marketing Courses in Abu Dhabi

Rohit said...

The article is innovative and useful. Keep it up. Do visit: Digital marketing courses in Agra

Puja Mittal said...

Hi blogger. The content you have mentioned is well explained and informative. This blog is really useful to many of the readers like me. Thank You.
Digital marketing courses in Ghana

Diksha said...

Wow, you have written very informative content. Looking forward to reading all your blogs. If you want to read about Financial Modelling Interview Questions please click
Financial Modeling Interview Questions

Vaishnavi said...

As a newbie I found this article very interesting and useful. Keep sharing more article. If anyone looking forward to learn digital marketing in nagpur then check out this informative article Digital marketing courses in Nagpur .

MCasbo said...

"This article was exceptional. It had an insightful angle, a new perspective, or something I didn't know about. Every paragraph was compelling."
To know more

Digital Marketing Courses in New Zealand

Asin said...

Thanks for sharing such useful information. Financial Modeling Course in Delhi

Riya said...

Highly appreciable content! I really liked your blog. If anyone is interested in building a medical career but are struggling to clear medical entrance exams, Wisdom Academy is the right place to begin. It is one of Mumbai’s best NEET coaching institutes for students preparing for medical and other competitive-level entrance examinations. It offers comprehensive learning resources, advanced study apparatus, doubt-clearing sessions, mentoring, and much more. Enroll Now!
NEET Coaching in Mumbai

Rohit said...

The story of Software QA engineers looks inspiring for shifting from manual to automated testing. Also with the examples given in article is really helpful. Keep sharing us such good content. Also do check our article on Digital Marketing courses in Bahamas

Abdullah Saif said...

Gratitudes for providing this type of details and also projecting even more columns of this form from you. Umrah Packages

Ajay singh said...

Thanks for provide great informatic and looking beautiful blog, really nice required information & the things i never imagined and i would request, right more blog and blog post like that for us. Thanks you once again Content Writing Courses in Delhi

Melys said...

Great post about automation. It looks you have huge technical knowledge. Thank you for sharing and keep updating. We also provide an informational and educational blog about Freelancing. Today, many people want to start a Freelance Career and they don’t know How and Where to start. People are asking about:
What is Freelancing and How Does it work?
How to Become a Freelancer?
Is working as a Freelancer a good Career?
Is there a Training for Freelancers?
What is a Freelancer Job Salary?
Can I live with a Self-Employed Home Loan?
What are Freelancing jobs and where to find Freelance jobs?
How to get Freelance projects?
How Do companies hire Freelancers?
In our Blog, you will find a guide with Tips and Steps which will help you starting a good Freelancing Journey. Do check out our blog:
What is Freelancing

«Oldest ‹Older   1 – 200 of 204   Newer› Newest»