Package com.crawljax.core.configuration
Class CrawlRules.CrawlRulesBuilder
- java.lang.Object
-
- com.crawljax.core.configuration.CrawlRules.CrawlRulesBuilder
-
- Enclosing class:
- CrawlRules
public static final class CrawlRules.CrawlRulesBuilder extends Object
-
-
Field Summary
Fields Modifier and Type Field Description private CrawlActionsBuildercrawlActionsBuilderprivate com.google.common.collect.ImmutableSortedSet.Builder<Eventable.EventType>crawlEventsprivate CrawljaxConfiguration.CrawljaxConfigurationBuildercrawljaxBuilderprivate CrawlRulescrawlRulesprivate com.google.common.collect.ImmutableSortedSet.Builder<String>ignoredFrameIdentifiersprivate com.google.common.collect.ImmutableList.Builder<Invariant>invariantsprivate com.google.common.collect.ImmutableList.Builder<OracleComparator>oracleComparatorsprivate PreCrawlConfiguration.PreCrawlConfigurationBuilderpreCrawlConfig
-
Constructor Summary
Constructors Modifier Constructor Description privateCrawlRulesBuilder(CrawljaxConfiguration.CrawljaxConfigurationBuilder crawljaxBuilder)
-
Method Summary
-
-
-
Field Detail
-
crawlRules
private final CrawlRules crawlRules
-
crawlActionsBuilder
private final CrawlActionsBuilder crawlActionsBuilder
-
preCrawlConfig
private final PreCrawlConfiguration.PreCrawlConfigurationBuilder preCrawlConfig
-
ignoredFrameIdentifiers
private final com.google.common.collect.ImmutableSortedSet.Builder<String> ignoredFrameIdentifiers
-
crawljaxBuilder
private final CrawljaxConfiguration.CrawljaxConfigurationBuilder crawljaxBuilder
-
crawlEvents
private final com.google.common.collect.ImmutableSortedSet.Builder<Eventable.EventType> crawlEvents
-
invariants
private final com.google.common.collect.ImmutableList.Builder<Invariant> invariants
-
oracleComparators
private final com.google.common.collect.ImmutableList.Builder<OracleComparator> oracleComparators
-
-
Constructor Detail
-
CrawlRulesBuilder
private CrawlRulesBuilder(CrawljaxConfiguration.CrawljaxConfigurationBuilder crawljaxBuilder)
-
-
Method Detail
-
setFormFillMode
public CrawlRules.CrawlRulesBuilder setFormFillMode(CrawlRules.FormFillMode formFillMode)
-
setFormFillOrder
public CrawlRules.CrawlRulesBuilder setFormFillOrder(CrawlRules.FormFillOrder formFillOrder)
-
setCrawlPriorityMode
public CrawlRules.CrawlRulesBuilder setCrawlPriorityMode(CrawlRules.CrawlPriorityMode crawlPriorityMode)
-
setCrawlNearDuplicates
public CrawlRules.CrawlRulesBuilder setCrawlNearDuplicates(boolean crawlNearDuplicates)
-
setDelayNearDuplicateCrawling
public CrawlRules.CrawlRulesBuilder setDelayNearDuplicateCrawling(boolean delayNearDuplicateCrawling)
-
applyNonSelAdvantage
public CrawlRules.CrawlRulesBuilder applyNonSelAdvantage(boolean applyNonSelAdv)
-
avoidUnrelatedBacktracking
public void avoidUnrelatedBacktracking(boolean avoidUnrelatedBacktracking)
-
avoidDifferentBacktracking
public void avoidDifferentBacktracking(boolean avoidDifferentBacktracking)
-
useEquivalentReset
public void useEquivalentReset(boolean useEquivalentReset)
-
skipExploredActions
public CrawlRules.CrawlRulesBuilder skipExploredActions(boolean skipExploredActions, int maxRepeatExploredActions)
maxRepeat default value is 2- Parameters:
skipExploredActions-maxRepeatExploredActions-- Returns:
-
setBacktrackingRules
public CrawlRules.CrawlRulesBuilder setBacktrackingRules(boolean avoidUnrelatedBacktracking, boolean avoidDifferentBacktracking, boolean useEquivalentReset)
avoiding differentbacktracking automatically stops unrelatedbacktracking- Parameters:
avoidUnrelatedBacktracking-avoidDifferentBacktracking-useEquivalentReset-- Returns:
-
setUsefulFragmentRules
public CrawlRules.CrawlRulesBuilder setUsefulFragmentRules(FragmentRules fragmentRules)
-
setRestoreConnectedStates
public CrawlRules.CrawlRulesBuilder setRestoreConnectedStates(boolean b)
-
dontCrawlFrame
public CrawlRules.CrawlRulesBuilder dontCrawlFrame(String frame)
- Parameters:
frame- A frame that should be excluded from the DOM, before doing any other operations.
-
addEventType
public CrawlRules.CrawlRulesBuilder addEventType(Eventable.EventType... eventTypes)
- Parameters:
eventTypes- Add anEventable.EventTypethat should be triggered by Crawljax. If none are defined, it will only useEventable.EventType.click
-
addInvariant
public CrawlRules.CrawlRulesBuilder addInvariant(Invariant... invariant)
-
addInvariant
public CrawlRules.CrawlRulesBuilder addInvariant(String description, Condition condition)
- Parameters:
description- The invariants description.condition- The condition for the invariant.- See Also:
Invariant(String, Condition)
-
addOracleComparator
public CrawlRules.CrawlRulesBuilder addOracleComparator(OracleComparator... oracle)
-
addWaitCondition
public PreCrawlConfiguration.PreCrawlConfigurationBuilder addWaitCondition(WaitCondition... condition)
- Parameters:
condition- add aWaitCondition.
-
addCrawlCondition
public PreCrawlConfiguration.PreCrawlConfigurationBuilder addCrawlCondition(CrawlCondition... condition)
- Parameters:
condition- add aCrawlCondition
-
addCrawlCondition
public PreCrawlConfiguration.PreCrawlConfigurationBuilder addCrawlCondition(String description, Condition crawlCondition)
- See Also:
CrawlCondition(String, Condition)
-
filterAttributeNames
public PreCrawlConfiguration.PreCrawlConfigurationBuilder filterAttributeNames(String names)
- Parameters:
names- add an attribute name you want to filter before parsing the dom.
-
setInputSpec
public CrawlRules.CrawlRulesBuilder setInputSpec(InputSpecification spec)
-
testInvariantsWhileCrawling
public CrawlRules.CrawlRulesBuilder testInvariantsWhileCrawling(boolean test)
- Parameters:
test- Test the invariants while crawling or not. Default istrue.
-
clickOnce
public CrawlRules.CrawlRulesBuilder clickOnce(boolean once)
- Parameters:
once- Set the crawler to interact with any element only once. Default istrue
-
clickElementsInRandomOrder
public CrawlRules.CrawlRulesBuilder clickElementsInRandomOrder(boolean randomize)
- Parameters:
randomize- Click candidate elements derived from the DOM in random order in stead of in the order that they are found.
-
crawlFrames
public CrawlRules.CrawlRulesBuilder crawlFrames(boolean frames)
- Parameters:
frames- Crawl frames in a page. Default istrue.
-
waitAfterReloadUrl
public CrawlRules.CrawlRulesBuilder waitAfterReloadUrl(long time, TimeUnit unit)
- Parameters:
time- The time to wait after a URL is loaded. Default is 500 milliseconds.unit- The time unit.
-
waitAfterEvent
public CrawlRules.CrawlRulesBuilder waitAfterEvent(long time, TimeUnit unit)
- Parameters:
time- The time to wait after an event is fired. Default is 500 milliseconds.unit- The time unit.
-
crawlHiddenAnchors
public CrawlRules.CrawlRulesBuilder crawlHiddenAnchors(boolean anchors)
Set Crawljax to click hidden anchors or not. Default isfalse.- Pro:
- The benefit of clicking hidden anchors is that Crawljax isn't capable of clicking elements that are hidden for example because you have to hover another element first. This happens in most fold-out menus for example. Enabling this function allows Crawljax to find more states that are hidden this way.
- Con:
- If a anchor tag is never visible in the browser in any way, Crawljax will crawl it anyway. This makes the Crawl inconsistent with what the user experiences.
-
click
public CrawlElement click(String tagName)
- Parameters:
tagName-- See Also:
CrawlActionsBuilder.click(java.lang.String)
-
enter
public CrawlElement enter(String tagName)
-
click
public CrawlRules.CrawlRulesBuilder click(String... tagNames)
- Parameters:
tagNames-- Returns:
- See Also:
CrawlActionsBuilder.click(java.lang.String[])
-
clickDefaultElements
public CrawlRules.CrawlRulesBuilder clickDefaultElements()
- Returns:
- See Also:
CrawlActionsBuilder.clickDefaultElements()
-
clickElementsWithClickEventHandler
public CrawlRules.CrawlRulesBuilder clickElementsWithClickEventHandler()
- Returns:
- See Also:
CrawlActionsBuilder.clickElementsWithClickEventHandler()
-
dontClick
public CrawlElement dontClick(String tagName)
-
dontClickChildrenOf
public CrawlActionsBuilder.ExcludeByParentBuilder dontClickChildrenOf(String tagName)
- Parameters:
tagName-- See Also:
CrawlActionsBuilder.dontClickChildrenOf(java.lang.String)
-
followExternalLinks
public CrawlRules.CrawlRulesBuilder followExternalLinks(boolean follow)
Follow links in anchor tags that have anhrefelement that points to an URL outside of this website. This does not prevent JavaScript from opening an external URL.Once the browser reaches an external URL it will not accept that URL as a new state. Crawljax is not meant to crawl outside a website. This option exists so that you can check all URLs for
404errors.- Parameters:
follow- Set to true to follow external urls. Default isfalse.
-
endRules
public CrawljaxConfiguration.CrawljaxConfigurationBuilder endRules()
Helper method for method chaining. Now you can doCrawljaxConfiguration.builderFor("http://example.com").crawlRules() .followExternalLinks(true).endRules().build();- Returns:
- The
CrawljaxConfiguration.CrawljaxConfigurationBuilderto make method chaining easier.
-
build
CrawlRules build()
-
setupOracleComparatorsOrDefault
private void setupOracleComparatorsOrDefault()
-
-