-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support the W3C webdriver spec #293
Comments
#288 was created to refer to the first solution for this topic (but does not describe the implication, and does not seem to care about the W3C support in the PR implementing it) |
#287 should be done first before this work (we should switch to Chrome on Travis, as there is no way to run recent Firefox versions with the JsonWire protocol). |
The more I look at instaclick/php-webdriver 2 "supporting" the WEC protocol (currently in RC), the more I think we should rather migrate to the facebook package (for which the PR supporting the W3C protocol inside their abstraction is almost ready AFAICT). |
Btw, if we look at https://packagist.org/packages/instaclick/php-webdriver/dependents and the download counts on https://packagist.org/?query=webdriver, I think most of the downloads of
So we are the only ones keeping |
Unfortunately Facebook Web Driver is now requiring PHP 7 and that was main reason why PR still isn't merged. |
@aik099 as we need to make a new major release of the driver anyway, I'm fine with requiring PHP 7.1+ for it. All older PHP versions will be EOLed by the end of December. People really wanting to use PHP 5.x could still use Selenium2Driver 1.x and use Chrome (or another browser with a driver supporting the legacy protocol) |
Agreed. We'll then have new driver require PHP 7.1, but Mink itself stays with current 5.x requirement. |
Well, Mink itself will probably bump its own requirement in the future too, but I don't have a roadmap for that (as long as we don't make changes benefiting from it, there is no strong need) |
just wanted to know how to use instaclick/php-webdriver:2.0.0-RC2 with mink and mink extension ? { Your requirements could not be resolved to an installable set of packages. |
currently, you cannot do it directly. |
even with facebook/webdriver + minkextension? |
I don't understand your question. You asked whether you can use instaclick/php-webdriver:2.0.0-RC2, and now you say |
Sorry about confusion ,my question is
|
none of that is possible today, which is precisely what this issue is about:
So we are still discussing in which direction we want to rewrite the driver (supporting the W3C spec on top of instaclick/php-webdriver:2 also involves lots of rewriting in the driver). |
@stof recently we've been trying to migrate this library to So far my results: There are few issues with Chrome eg: Keyboard event, but it it's related to assert of driver-testsuite. |
Note: chrome+chromedriver 75 has recently come out and now defaults to Also see SeleniumHQ/docker-selenium#922 where I am having this trouble with the latest https://github.com/SeleniumHQ/docker-selenium |
@phil-davis Looks like we were debugging this at the same time :)) This is the full fix in
Until https://github.com/instaclick/php-webdriver implements support for |
@alexdesignworks I have been trying that in owncloud/core#35445
https://drone.owncloud.com/owncloud/core/18090/681 But I get a WebDriver Exception:
Any clues are welcome! |
Temporarily pinning to Chromedriver 74 seems to be the best workaround for now. See https://github.com/acquia/blt/pull/3708/files/9aa7d8cf28025b957f1e628d9c6de6e63a0a5aac#diff-586532737a140c4f8e2079e2c33fc217 |
Mink Extension's fill field fails because W3C mode on Chrome 75+ causes MinkSelenium2Driver to break: Behat/MinkExtension#345 and minkphp/MinkSelenium2Driver#293 (comment)
When setting w3c to false, use "goog:chromeOptions" instead of "chromeOptions" Hoping this issue is resolved before Chrome decides to no longer support jsonwire at all. |
Is it only me, or this started to work on its own in latest versions of Chrome Driver 75 and even in the new v76? |
I am using |
Here is a build that works with latest chrome and chrome driver that previously failed: https://travis-ci.org/netgen-layouts/layouts-core/jobs/566143335 Previous failing build: https://travis-ci.org/netgen-layouts/layouts-core/jobs/545643705 |
@alexdesignworks Thanks a ton for this solution #293 (comment) |
I have got this working on Chrome 75 in headless mode by using the following configuration:
|
With Chrome 76.0.3809.100 / Chromedriver Version = 76.0.3809.68 '--headless' only works for me if "chromeOptions:" is "goog:chromeOptions"; otherwise, it still runs headed. |
The problem is possible 'fix' it by inserting the following 3 lines at the start of the webDriverElement function in Behat, vendor/instaclick/php-webdriver/lib/WebDriver/Container.php: |
Hi everyone, facebook/php-webdriver support for the W3C protocol is nearly ready: php-webdriver/php-webdriver#560 (comment). Would be worth testing an update to use it now? I'm happy to assemble a PR from @tractorcow's fork (to use facebook/php-webdriver) if it would help as well. |
Thank you! |
@stof can you please tell me if latest version of Edge & Firefox are supported with Mink selenium2driver, using selenium 4 ? |
Closing this as we have created the |
Support for the JsonWire selenium protocol is fading out in favor of the W3C spec:
We will have some work to do to make this happen.
The instaclick/php-webdriver library that we are using has a beta version of 2.0 which adds support for interacting with a W3C server. But they won't provide an abstraction layer to make the same code work for both variants (see instaclick/php-webdriver#84). It will be up to our code to choose the right way (and we will need instaclick/php-webdriver#86 to be able to know which one we need).
Due to the fact that we expose the webdriver session to userland, we would have to consider this upgrade as a BC break.
Another option could be to migrate to facebook/webdriver, which seems a bit more popular this days (https://packagist.org/?query=webdriver). It is currently adding support for the W3C spec (WIP is at php-webdriver/php-webdriver#560), and does so by abstracting the differences internally).
Doing such migration would also require making it a major release, as we would change the API we expose when exposing the session.
The text was updated successfully, but these errors were encountered: