<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Basics</title><link>https://sourceforge.net/p/popperfw/wiki/Basics/</link><description>Recent changes to Basics</description><atom:link href="https://sourceforge.net/p/popperfw/wiki/Basics/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 12 Nov 2013 11:06:55 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/popperfw/wiki/Basics/feed" rel="self" type="application/rss+xml"/><item><title>Basics modified by Michael Bulla</title><link>https://sourceforge.net/p/popperfw/wiki/Basics/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -107,3 +107,17 @@
    // =&gt; http://google.de?q=para1
 }
 ~~~~~
+
+# Getting access to page attributes
+There are some Annotaions giving you access to site information
+
+~~~~~
+@Page(name="Simple Po")
+public interface SimplePO {
+   @PageSource
+   String getHtml();
+
+   @Title
+   String getTitle();
+}
+~~~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Michael Bulla</dc:creator><pubDate>Tue, 12 Nov 2013 11:06:55 -0000</pubDate><guid>https://sourceforge.net9d02fc6f47a38af1518312f7915de878a27bd775</guid></item><item><title>Basics modified by Michael Bulla</title><link>https://sourceforge.net/p/popperfw/wiki/Basics/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -102,7 +102,7 @@
    void openMapWithExistingParameters(Map parameters);
    // =&gt; http://some.location.com/pages/open.html?para1=val1&amp;amp;parasFromMap

-   @PageAccessor(absolute="http://google.de?q={1}")
+   @PageAccessor(absoluteUri="http://google.de?q={1}")
    void search(String query);
    // =&gt; http://google.de?q=para1
 }
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Michael Bulla</dc:creator><pubDate>Fri, 08 Nov 2013 21:21:43 -0000</pubDate><guid>https://sourceforge.netce21e9c267c2ef06b0bc6c92949920eeaf95a26f</guid></item><item><title>Basics modified by Michael Bulla</title><link>https://sourceforge.net/p/popperfw/wiki/Basics/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -25,6 +25,7 @@

 ## a shortcut
 For default Locator-types you can add the locator-expression to @Locator-annotation
+
 ~~~~~
 :::java
 @Page(name="Login")
@@ -79,8 +80,30 @@
 }
 ~~~~~

+# opening sites
+An open-method can be declared, too. This can be used, to open the site by entering the url

+~~~~~
+@Page(name="Simple Po")
+public interface OpenedSitePO {
+   @PageAccessor(uri="/pages/open.html")
+   void open(); 
+   // =&gt; http://some.location.com/pages/open.html
+   
+   @PageAccessor(uri="/pages/open.html?name={0}&amp;amp;password={1}")
+   void open(String name, String password);
+   // =&gt; http://some.location.com/pages/open.html?name=para1&amp;amp;password=para2
+   
+   @PageAccessor(uri="/pages/open.html")
+   void openMapSimple(Map parameters);
+   // =&gt; http://some.location.com/pages/open.html?key1=value1&amp;amp;key2=value2
+   
+   @PageAccessor(uri="/pages/open.html?para1=val1")
+   void openMapWithExistingParameters(Map parameters);
+   // =&gt; http://some.location.com/pages/open.html?para1=val1&amp;amp;parasFromMap

-
-
-
+   @PageAccessor(absolute="http://google.de?q={1}")
+   void search(String query);
+   // =&gt; http://google.de?q=para1
+}
+~~~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Michael Bulla</dc:creator><pubDate>Fri, 08 Nov 2013 21:20:27 -0000</pubDate><guid>https://sourceforge.net1212cd91c0317b7b05ca65bb361335326926f932</guid></item><item><title>Basics modified by Michael Bulla</title><link>https://sourceforge.net/p/popperfw/wiki/Basics/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,7 +1,9 @@
-Some sourcecode
+[TOC]

+# creating a simple page object
 ~~~~~
 :::java
+@Page(name="Login")
 public interface LoginSite {
   @Locator(name="Username")
   @LocateByXpath("//input[@name='username']")
@@ -20,3 +22,65 @@
   ILink registerLink();
 }
 ~~~~~
+
+## a shortcut
+For default Locator-types you can add the locator-expression to @Locator-annotation
+~~~~~
+:::java
+@Page(name="Login")
+public interface LoginSite {
+  @Locator(name="Username", xpath="//input[@name='username']")
+  ITextBox usernameTextbox();
+ 
+  @Locator(name="Password", xpath="//input[@name='password']")
+  ITextBox passwordTextbox();
+ 
+  @Locator(name="Login Submit", cssSelector=".submitLoginButton")
+  IButton submitLoginButton();
+ 
+  @Locator(name="Register", id="register")
+  ILink registerLink();
+}
+~~~~~
+
+# Instantiating pos
+~~~~~
+:::java
+public class LoginTest {
+   protected IPoFactory factory;
+
+   @Before
+   public void setup() {
+       WebdriverContext context = new WebdriverContext();
+       context.getDefaultConfig().setBrowser(Browser.FIREFOX);
+       context.getDefaultConfig().setBaseUrl("http://some.location.com/");
+       factory = context.getFactory();
+   }
+
+   @Test
+   public void testLogin() {
+       LoginSite login = factory.createPage(LoginSite.class);
+       login.open();
+       login.usernameTextbox().type("Michael");
+       login.passwordTextbox().type("secret");
+       login.submitLoginButton().click();
+   }
+}
+~~~~~
+
+# Using parameters
+~~~~~
+:::java
+@Page(name="Index")
+public interface Indexsite {
+  @Locator(name="Link {0}")
+  @LocateByXpath("//a[text()='{0}']
+  ILink linkByName(@ParamName("Linkname") String linkname);
+}
+~~~~~
+
+
+
+
+
+
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Michael Bulla</dc:creator><pubDate>Fri, 08 Nov 2013 21:12:06 -0000</pubDate><guid>https://sourceforge.net0c4d98f9cf4bf7a61d3d97e87108e482aa1c914e</guid></item><item><title>Basics modified by Michael Bulla</title><link>https://sourceforge.net/p/popperfw/wiki/Basics/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Some sourcecode&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;interface&lt;/span&gt; &lt;span class="nc"&gt;LoginSite&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="nd"&gt;@Locator&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Username&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="nd"&gt;@LocateByXpath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;//input[@name='username']&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;ITextBox&lt;/span&gt; &lt;span class="nf"&gt;usernameTextbox&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

  &lt;span class="nd"&gt;@Locator&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Password&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="nd"&gt;@LocateByXpath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;//input[@name='password']&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;ITextBox&lt;/span&gt; &lt;span class="nf"&gt;passwordTextbox&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

  &lt;span class="nd"&gt;@Locator&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Login Submit&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="nd"&gt;@LocateByCssSelector&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;.submitLoginButton&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;IButton&lt;/span&gt; &lt;span class="nf"&gt;submitLoginButton&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

  &lt;span class="nd"&gt;@Locator&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Register&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="nd"&gt;@LocateById&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;register&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;ILink&lt;/span&gt; &lt;span class="nf"&gt;registerLink&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Michael Bulla</dc:creator><pubDate>Fri, 08 Nov 2013 20:53:45 -0000</pubDate><guid>https://sourceforge.net87c68b9ce1d23d36ad0f8b075f4a37bf90695e2b</guid></item></channel></rss>