Class PageObject
- All Implemented Interfaces:
CapybaraPortingLayer
- Direct Known Subclasses:
Action,Artifact,BuildHistory,BuildWithParameters,Changes,ConfigFileProvider,ConfigurablePageObject,ContentSecurityPolicyReport,DiskUsage,GerritTriggerJob,GerritTriggerNewServer,GerritTriggerServer,JcascManage,JenkinsDatabaseSecurityRealm.Signup,JenkinsLogger,JobConfigHistory.Change,Login,Logout,LogParserOutputPage,ProvidedFile,ScriptApproval,SecurityDisabler,SnippetGenerator,SubversionSvmAdvanced,SvnRepositoryBrowser,WizardCreateAdminUser,WizardCustomizeJenkins,WizardLogin,Workspace
See ...
Most non-trivial page objects should derive from ContainerPageObject.
- Author:
- Kohsuke Kawaguchi
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jenkinsci.test.acceptance.po.CapybaraPortingLayerImpl
CapybaraPortingLayerImpl.Finder<R>, CapybaraPortingLayerImpl.Resolver -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.fasterxml.jackson.databind.ObjectMapperfinal URLFull URL of the object that this page object represents.Fields inherited from class org.jenkinsci.test.acceptance.po.CapybaraPortingLayerImpl
driver, injector, LABEL_TO_INPUT_XPATH, timeFields inherited from interface org.jenkinsci.test.acceptance.po.CapybaraPortingLayer
by -
Constructor Summary
ConstructorsModifierConstructorDescriptionPageObject(com.google.inject.Injector injector, URL url) protectedPageObject(PageObject context, URL url) -
Method Summary
Modifier and TypeMethodDescriptionCreate a control object that wraps access to the specific INPUT element in this page area.control(org.openqa.selenium.By selector) createPageArea(String pathPrefix, Runnable action) Capture path attribute of newly created form chunk upon invoking action.static Stringprotected voidEnsures that the current page is the one represented by this PageObject, and opens it if not.protected PageObjectorg.openqa.selenium.WebDriveropen()Visits the top page of this object.toString()Resolves relative path againsturland treats any exception a a fatal problem.voidGiven the path relative tourl, visit that pageMethods inherited from class org.jenkinsci.test.acceptance.po.CapybaraPortingLayerImpl
all, blur, check, check, check, choose, clickButton, clickLink, confirmAlert, elasticSleep, executeScript, fillIn, find, findCaption, findCaption, findIfNotVisible, getCurrentUrl, getCurrentUrlWithFragment, getElement, getPageContent, getPageSource, getPageSource, getPath, handleAlert, isHiddenOrStale, isStale, last, lastIfNotVisible, newInstance, resource, runThenConfirmAlert, runThenConfirmAlert, runThenHandleAlert, runThenHandleAlert, runThenHandleDialog, runThenHandleInputDialog, runThenHandleUserPrompt, sleep, visit, waitFor, waitFor, waitFor, waitFor, waitFor, waitForCond, waitForCond
-
Field Details
-
jsonParser
@Inject protected com.fasterxml.jackson.databind.ObjectMapper jsonParser -
url
Full URL of the object that this page object represents. Ends with '/', like "http://localhost:8080/job/foo/"
-
-
Constructor Details
-
PageObject
-
PageObject
-
-
Method Details
-
createRandomName
-
getJenkins
-
open
public org.openqa.selenium.WebDriver open()Visits the top page of this object. -
ensureOpen
protected void ensureOpen()Ensures that the current page is the one represented by this PageObject, and opens it if not. -
visit
Given the path relative tourl, visit that page -
url
Resolves relative path againsturland treats any exception a a fatal problem. -
url
-
control
Create a control object that wraps access to the specific INPUT element in this page area.The
Controlobject itself can be created early as the actual element resolution happens lazily. This meansPageAreaImplimplementations can put these in their fields.Several paths can be provided to find the first matching element. Useful when element path changed between versions.
-
control
-
createPageArea
@NonNull public String createPageArea(String pathPrefix, Runnable action) throws org.openqa.selenium.TimeoutException Capture path attribute of newly created form chunk upon invoking action.Consider "Add" button in page area with path "/foo" that is supposed to create new page area with path "/foo/bar" or "/foo/bar[n]". There are several problems with the straightforward approach: - Created area may or may not be the first one of its kind so figuring the "path" is nontrivial. - The area may can take a while to render so waiting is needed. - Even after the markup appears, it can take a while for "path" attribute is added.
This method properly wait until the new path is known. To be used as:
String barPath = fooArea.createPageArea("/bar", () -> control("add-button").click()); new FooBarArea(fooArea, barPath);- Parameters:
pathPrefix- Prefix of the expected path. The path is always absolute.action- An action that triggers the page area creation. Clicking the button, etc.- Returns:
- The surrounding path of the area, exception thrown when not able to find out.
- Throws:
org.openqa.selenium.TimeoutException
-
toString
-
getContext
-