当前位置: 首页>>代码示例>>Java>>正文


Java CrawljaxConfigurationBuilder.build方法代码示例

本文整理汇总了Java中com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder.build方法的典型用法代码示例。如果您正苦于以下问题:Java CrawljaxConfigurationBuilder.build方法的具体用法?Java CrawljaxConfigurationBuilder.build怎么用?Java CrawljaxConfigurationBuilder.build使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder的用法示例。


在下文中一共展示了CrawljaxConfigurationBuilder.build方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: main

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
public static void main(String[] args) {

		CrawljaxConfigurationBuilder builder =
		        CrawljaxConfiguration.builderFor("http://demo.crawljax.com/");
		builder.addPlugin(new OnNewStatePlugin() {

			@Override
			public void onNewState(CrawlerContext context, StateVertex newState) {
				// This will print the DOM when a new state is detected. You should see it in your
				// console.
				LOG.info("Found a new dom! Here it is:\n{}", context.getBrowser().getStrippedDom());
			}

			@Override
			public String toString() {
				return "Our example plugin";
			}
		});
		CrawljaxRunner crawljax = new CrawljaxRunner(builder.build());
		crawljax.call();
	}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:22,代码来源:PluginExample.java

示例2: main

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
/**
 * Run this method to start the crawl.
 */
public static void main(String[] args) {
	CrawljaxConfigurationBuilder builder =
	        CrawljaxConfiguration.builderFor("http://demo.crawljax.com/");

	// Add the invariant that checks that the string isn't present.
	builder.crawlRules().addInvariant(
	        "Detect a string",
	        new NotRegexCondition(
	                "Invariants can be used to perform tests on the current state"));

	// This plugin will just print the error.
	builder.addPlugin(new OnInvariantViolationPlugin() {

		@Override
		public void onInvariantViolation(Invariant invariant, CrawlerContext context) {
			LOG.error("\n\n!!! Invariant {} violated !!!\n", invariant);
		}

	});

	CrawljaxRunner crawljax = new CrawljaxRunner(builder.build());
	crawljax.call();
}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:27,代码来源:InvariantExample.java

示例3: main

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
/**
 * Entry point
 */
public static void main(String[] args) {
	CrawljaxConfigurationBuilder builder = CrawljaxConfiguration.builderFor(URL);
	builder.crawlRules().insertRandomDataInInputForms(false);

	builder.crawlRules().click("a");
	builder.crawlRules().click("button");

	// except these
	builder.crawlRules().dontClick("a").underXPath("//DIV[@id='guser']");
	builder.crawlRules().dontClick("a").withText("Language Tools");

	// limit the crawling scope
	builder.setMaximumStates(MAX_NUMBER_STATES);
	builder.setMaximumDepth(MAX_DEPTH);

	builder.addPlugin(new SamplePlugin());

	builder.crawlRules().setInputSpec(getInputSpecification());

	CrawljaxRunner crawljax = new CrawljaxRunner(builder.build());
	crawljax.call();
}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:26,代码来源:Runner.java

示例4: getCrawljaxConfiguration

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
/**
 * retrieve / build the CrawljaxConfiguration for the given arguments.
 */
protected CrawljaxConfiguration getCrawljaxConfiguration() {

	CrawljaxConfigurationBuilder builder =
	        CrawljaxConfiguration.builderFor(WEB_SERVER.getSiteUrl());
	builder.crawlRules().waitAfterEvent(getTimeOutAfterEvent(), TimeUnit.MILLISECONDS);
	builder.crawlRules()
	        .waitAfterReloadUrl(getTimeOutAfterReloadUrl(), TimeUnit.MILLISECONDS);
	builder.setMaximumDepth(3);
	builder.crawlRules().clickOnce(true);

	builder.setBrowserConfig(getBrowserConfiguration());

	addCrawlElements(builder);

	builder.crawlRules().setInputSpec(getInputSpecification());

	addCrawlConditions(builder);
	addOracleComparators(builder);
	addInvariants(builder);
	addWaitConditions(builder);
	addPlugins(builder);

	return builder.build();
}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:28,代码来源:LargeTestBase.java

示例5: testExtract

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
@Test
public void testExtract() throws InterruptedException, CrawljaxException {
	CrawljaxConfigurationBuilder builder =
	        CrawljaxConfiguration.builderFor(DEMO_SITE_SERVER.getSiteUrl().toExternalForm());
	builder.crawlRules().click("a");
	builder.crawlRules().clickOnce(true);
	CrawljaxConfiguration config = builder.build();

	CandidateElementExtractor extractor = newElementExtractor(config);
	browser.goToUrl(DEMO_SITE_SERVER.getSiteUrl());
	List<CandidateElement> candidates = extractor.extract(DUMMY_STATE);

	assertNotNull(candidates);
	assertEquals(15, candidates.size());

}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:17,代码来源:CandidateElementExtractorTest.java

示例6: testExtractExclude

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
@Test
public void testExtractExclude() throws Exception {
	CrawljaxConfigurationBuilder builder =
	        CrawljaxConfiguration.builderFor(DEMO_SITE_SERVER.getSiteUrl().toExternalForm());
	builder.crawlRules().click("a");
	builder.crawlRules().dontClick("div").withAttribute("id", "menubar");
	builder.crawlRules().clickOnce(true);
	CrawljaxConfiguration config = builder.build();

	CandidateElementExtractor extractor = newElementExtractor(config);
	browser.goToUrl(DEMO_SITE_SERVER.getSiteUrl());

	List<CandidateElement> candidates = extractor.extract(DUMMY_STATE);

	assertNotNull(candidates);
	assertThat(candidates, hasSize(11));

}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:19,代码来源:CandidateElementExtractorTest.java

示例7: testExtractIframeContents

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
@Test
public void testExtractIframeContents() throws Exception {
	RunWithWebServer server = new RunWithWebServer("/site");
	server.before();
	CrawljaxConfigurationBuilder builder =
	        CrawljaxConfiguration
	                .builderFor(server.getSiteUrl().toExternalForm() + "iframe/");
	builder.crawlRules().click("a");
	CrawljaxConfiguration config = builder.build();

	CandidateElementExtractor extractor = newElementExtractor(config);
	browser.goToUrl(new URL(server.getSiteUrl().toExternalForm() + "iframe/"));
	List<CandidateElement> candidates = extractor.extract(DUMMY_STATE);

	for (CandidateElement e : candidates) {
		LOG.debug("candidate: " + e.getUniqueString());
	}

	server.after();

	assertNotNull(extractor);
	assertNotNull(candidates);
	assertThat(candidates, hasSize(9));

}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:26,代码来源:CandidateElementExtractorTest.java

示例8: testPopups

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
@Test
public void testPopups() throws CrawljaxException {
	CrawljaxConfigurationBuilder builder =
	        CrawljaxConfiguration.builderFor(WEB_SERVER.getSiteUrl().toExternalForm()
	                + "popup");
	builder.setMaximumDepth(3);
	builder.crawlRules().click("a");
	builder.crawlRules().waitAfterEvent(100, TimeUnit.MILLISECONDS);
	builder.crawlRules().waitAfterReloadUrl(100, TimeUnit.MILLISECONDS);
	CrawljaxRunner runner = new CrawljaxRunner(builder.build());
	CrawlSession session = runner.call();
	assertThat(session.getStateFlowGraph(), hasEdges(2));
	assertThat(session.getStateFlowGraph(), hasStates(3));
}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:15,代码来源:PopUpTest.java

示例9: testIframeExclusions

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
@Test
public void testIframeExclusions() throws CrawljaxException {
	CrawljaxConfigurationBuilder builder = setupConfig();
	builder.crawlRules().dontCrawlFrame("frame1");
	builder.crawlRules().dontCrawlFrame("sub");
	builder.crawlRules().dontCrawlFrame("frame0");
	CrawljaxConfiguration config = builder.build();
	crawljax = new CrawljaxRunner(config);
	CrawlSession session = crawljax.call();
	assertThat(session.getStateFlowGraph(), hasEdges(3));
	assertThat(session.getStateFlowGraph(), hasStates(4));
}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:13,代码来源:IFrameTest.java

示例10: testIFramesNotCrawled

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
@Test
public void testIFramesNotCrawled() throws CrawljaxException {
	CrawljaxConfigurationBuilder builder = setupConfig();
	builder.crawlRules().crawlFrames(false);
	crawljax = new CrawljaxRunner(builder.build());
	CrawlSession session = crawljax.call();
	assertThat(session.getStateFlowGraph(), hasEdges(3));
	assertThat(session.getStateFlowGraph(), hasStates(4));
}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:10,代码来源:IFrameTest.java

示例11: testIFramesWildcardsNotCrawled

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
@Test
public void testIFramesWildcardsNotCrawled() throws CrawljaxException {
	CrawljaxConfigurationBuilder builder = setupConfig();

	builder.crawlRules().dontCrawlFrame("frame%");
	builder.crawlRules().dontCrawlFrame("sub");
	crawljax = new CrawljaxRunner(builder.build());
	CrawlSession session = crawljax.call();
	assertThat(session.getStateFlowGraph(), hasEdges(3));
	assertThat(session.getStateFlowGraph(), hasStates(4));
}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:12,代码来源:IFrameTest.java

示例12: testCrawlingOnlySubFrames

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
@Test
public void testCrawlingOnlySubFrames() throws CrawljaxException {
	CrawljaxConfigurationBuilder builder = setupConfig();
	builder.crawlRules().dontCrawlFrame("frame1.frame10");
	crawljax = new CrawljaxRunner(builder.build());
	CrawlSession session = crawljax.call();
	assertEquals("Clickables", 12, session.getStateFlowGraph()
	        .getAllEdges().size());
	assertEquals("States", 12, session.getStateFlowGraph().getAllStates()
	        .size());
}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:12,代码来源:IFrameTest.java

示例13: setup

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
@Before
public void setup() {

	CrawljaxConfigurationBuilder builder = SERVER.newConfigBuilder("crawler/index.html");
	builder.addPlugin(new PreStateCrawlingPlugin() {

		@Override
		public void preStateCrawling(CrawlerContext session,
		        ImmutableList<CandidateElement> candidateElements, StateVertex state) {
			for (CandidateElement candidate : candidateElements) {
				HTMLAnchorElementImpl impl = (HTMLAnchorElementImpl) candidate.getElement();
				impl.setName("fail");
				impl.setId("eventually");
				impl.setHref("will");
				impl.setTextContent("This");
				candidate.getIdentification().setValue("/HTML[1]/BODY[1]/FAILED[1]/A[1]");
			}
		}
	});
	builder.addPlugin(new OnFireEventFailedPlugin() {
		@Override
		public void onFireEventFailed(CrawlerContext context, Eventable eventable,
		        List<Eventable> pathToFailure) {
			hits.incrementAndGet();
		}
	});

	controller = new CrawljaxRunner(builder.build());
}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:30,代码来源:OnFireEventFailedPluginTest.java

示例14: Start

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
public CrawljaxRunner Start(CrawljaxConfigurationBuilder builder) {
    CrawljaxRunner crawljax = new CrawljaxRunner(builder.build());
    callbacks.issueAlert("Crawljax Started: " + url);
    crawljax.call();
    callbacks.issueAlert("Crawljax Finished: " + url + " - Reason: " + crawljax.getReason());
    return crawljax;
}
 
开发者ID:malerisch,项目名称:burp-csj,代码行数:8,代码来源:SetupCrawljax.java

示例15: main

import com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder; //导入方法依赖的package包/类
/**
 * Run this method to start the crawl.
 * 
 * @throws IOException
 *             when the output folder cannot be created or emptied.
 */
public static void main(String[] args) throws IOException {
	CrawljaxConfigurationBuilder builder = CrawljaxConfiguration.builderFor(URL);
	builder.crawlRules().insertRandomDataInInputForms(false);
	builder.setMaximumRunTime(100, TimeUnit.SECONDS);


	// click these elements
	builder.crawlRules().clickDefaultElements();
	builder.crawlRules().click("div").withAttribute("class", "clickable");

	// but don't click these
	builder.crawlRules().dontClick("a").withAttribute("class", "ignore");
	builder.crawlRules().dontClick("a").underXPath("//DIV[@id='footer']");

	// Set timeouts
	builder.crawlRules().waitAfterReloadUrl(WAIT_TIME_AFTER_RELOAD, TimeUnit.MILLISECONDS);
	builder.crawlRules().waitAfterEvent(WAIT_TIME_AFTER_EVENT, TimeUnit.MILLISECONDS);

	// Add a condition that this XPath doesn't exits
	builder.crawlRules().addCrawlCondition("No spans with foo as class",
	        new NotXPathCondition("//*[@class='foo']"));

	// Set some input for fields
	builder.crawlRules().setInputSpec(getInputSpecification());

	// This will generate a nice output in the output directory.
	File outFolder = new File("output");
	if (outFolder.exists()) {
		FileUtils.deleteDirectory(outFolder);
	}
	builder.setOutputDirectory(outFolder);
	builder.addPlugin(new CrawlOverview());

	// We want to use two browsers simultaneously.
	builder.setBrowserConfig(new BrowserConfiguration(BrowserType.FIREFOX, 1));

	CrawljaxRunner crawljax = new CrawljaxRunner(builder.build());
	crawljax.call();

}
 
开发者ID:aminmf,项目名称:crawljax,代码行数:47,代码来源:AdvancedExample.java


注:本文中的com.crawljax.core.configuration.CrawljaxConfiguration.CrawljaxConfigurationBuilder.build方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。