The is an example project available on github: https://github.com/roydekleijn/Spring-Jbehave-WebDriver-Example
This allows multi-threading, custom webdriver and an event listener. Regards, Roy From: Mauro Talevi [mailto:[email protected]] Sent: dinsdag 12 februari 2013 18:23 To: [email protected] Subject: Re: [jbehave-user] Re: WebDriver has not been found for this thread. I've not been able to investigate your problem as I would need to first reproduce it. This is why I was asking for a fork on github where we could reproduce and investigate it. WRT your questions: 1. the issue is most likely in the extra @BeforeScenario/Story steps that you've defined. The WebDriver is set in the PerScenario/StoryWebDriverSteps annotated methods 2. it's got nothing to do with the location of the java/story files. On 12/02/2013 16:41, Julien Martin wrote: Hi Mauro! My codebase is actually slightly different from the one described in the JIRA. I do get the same error message though... I've spent the best of the day trying to figure out the difference between my codebase and that of the maven archetype (spring+web) which does work fine. To no avail. I have two questions: 1. By looking at the code provided in my prior email, can you spot something wrong? 2. Can you tell me whether all my JBehave code (java files, story files) should be located in src/main/ or src/test? Regards, Julien. 2013/2/12 Mauro Talevi <[email protected]<mailto:[email protected]>> I've commented on it. Same advice to you: Would it be possible for you to clone the jbehave-tutorial in github and provide your modifications in different branches? In this way, it's much easier to see what changing wrt to a working scenario to work with an easily reproducible codebase. Cheers On 12/02/2013 14:28, Julien Martin wrote: Hi, I noticed someone has encountered the same problem. See here: http://jira.codehaus.org/browse/JBEHAVE-790 Any update on this issue? Julien. 2013/2/11 Julien Martin <[email protected]<mailto:[email protected]>> Hello, I am trying to set up a JBehave + Spring based on the Etsy samples. However, here is what I get when I run the stories: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'steps' defined in class path resource [META-INF/spring/steps.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.bignibou.bdd.steps.WebSteps]: Constructor threw exception; nested exception is org.jbehave.web.selenium.DelegatingWebDriverProvider$DelegateWebDriverNotFound: WebDriver has not been found for this thread. Please verify you are using the correct WebDriverProvider, with the appropriate credentials if using remote access, e.g. to SauceLabs: -DSAUCE_USERNAME=xxxxxx -DSAUCE_ACCESS_KEY=xxx-xxxx-xxxx-xxxx-xxx Can anyone please help? Regards, Julien. Here is my Stories source: @RunWith(SpringAnnotatedEmbedderRunner.class) @Configure() @UsingEmbedder(embedder = Embedder.class, generateViewAfterStories = true, ignoreFailureInStories = true, ignoreFailureInView = true) @UsingSpring(resources = { "classpath:META-INF/spring/applicationContext.xml", "classpath:META-INF/spring/steps.xml" }) @UsingSteps(instances = { WebSteps.class }) public class SpringWebStories extends InjectableEmbedder { @Test public void run() { injectedEmbedder().runStoriesAsPaths(storyPaths()); } protected List<String> storyPaths() { String searchInDirectory = CodeLocations.codeLocationFromPath("src/test/java").getFile(); return new StoryFinder().findPaths(searchInDirectory, Arrays.asList("**/*.story"), null); } } Here is my WebSteps source: public class WebSteps { @Autowired private JavaMailSender javaMailSender; private Home home; public WebSteps(PageFactory factory) { this.home = factory.home(); } @Given("the following email address: $email and a chosen member status of $status and the following password: $password") public void anonymousVisitorEntersDetails(String email, String status, String password) { System.out.println("instance:" + javaMailSender); home.open(); home.enterDetails(email, status, password); } @When("the anonymous visitor signs up") public void anonymousVisitorDoesRegister(String login, String password) { home.doRegister(); } @Then("a confirmation email with activation information is sent to the anonymous visitor") public void activationInformationIsSent() { } ... Here is my steps.xml: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="driverProvider" class="org.jbehave.web.selenium.FirefoxWebDriverProvider"> </bean> <bean id="webDriverProvider" class="org.jbehave.web.selenium.PerStoryWebDriverSteps"> <constructor-arg ref="driverProvider" /> </bean> <bean id="lifecycleSteps" class="com.bignibou.bdd.steps.LifecycleSteps"> <constructor-arg ref="driverProvider" /> </bean> <bean id="pageFactory" class="com.bignibou.bdd.pages.PageFactory"> <constructor-arg ref="driverProvider" /> </bean> <bean id="steps" class="com.bignibou.bdd.steps.WebSteps"> <constructor-arg ref="pageFactory" /> </bean> </beans>
