Comments (6)
@walterdolce I've got this type of organization. I've simply defined my PageNameResolver
<?php
namespace NuvolaBehat\Page;
use SensioLabs\Behat\PageObjectExtension\PageObject\Factory\ClassNameResolver;
class PageNameResolver implements ClassNameResolver
{
/**
* @param string $pageFQCN
*
* @return string
*/
public function resolvePage($pageFQCN)
{
return $pageFQCN;
}
/**
* @param string $elementFQCN
*
* @return string
*/
public function resolveElement($elementFQCN)
{
return $elementFQCN;
}
}
that work as you expect
$this->homepage->getElement(RegisterButton::class)->click();
from behatpageobjectextension.
Just FYI, in future versions I'd like to reference page objects by FQCN rather than their name by default.
from behatpageobjectextension.
Cool, when new version comes out, I'll remove my PageNameResolver
;)
from behatpageobjectextension.
@jakzal if you want, I can try to make an implementation for FQCN. Something like: check if it's a valid (existing) one, check if it's an instance of that type (interface) and, then, return it. Maybe I can make a PR with RFC status. Let me know if you agree with this :)
from behatpageobjectextension.
Sure, PR would be nice :) Could be as simple as returning the class right away if it exists from the existing implementation, or a new implementation.
from behatpageobjectextension.
I'll close this one as since FQCN is implemented you can put your page objects anywhere.
from behatpageobjectextension.
Related Issues (20)
- verifyUrl() can report expected and found URL as the same HOT 1
- User Notice: Undefined property: Page\HomePage::$factory HOT 2
- What is best practice for using BPOE? HOT 5
- Fatal error: Call to a member function createPage() on null (Behat\Testwork\Call\Exception\FatalThrowableError) HOT 7
- Scenario works fine on pc but fails on Docker/Bitbucket HOT 3
- Expected to be on "xxx" but found "" instead HOT 6
- Misleading error when WebDriver fails to create a session
- Clicking link, when emulating device, does not work HOT 1
- Have Page subclasses to hold site-wide element locators and methods HOT 4
- ERROR 500 HOT 3
- fatal-error-uncaught-argument count error HOT 5
- Outdated Documentation HOT 2
- Support PHP 8.0 HOT 12
- Trying to get in touch regarding a security issue HOT 3
- Cannot autowire service ... "$factory" of method "SensioLabs\Behat\PageObjectExtension\PageObject\Page::__construct()" references interface "Sensi oLabs\Behat\PageObjectExtension\PageObject\Factory" HOT 1
- getDriver method is not available in Page class HOT 13
- Remove verify() from $page->open() function HOT 2
- Ability to reuse code among page/element objects HOT 2
- Remove path and selector from page and element HOT 2
- Fatal error: Call to a member function open() on null HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from behatpageobjectextension.