Public Project Meeting - May 20, 2021

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on May 20, 2021,5:30 PM CET. (Below times are on IST)

Meetings are held on the #selenium-tlc channel on Selenium Slack.


Simon Stewart 9:00 PM

@AutomatedTester, @p0deje @titusfortner, @harsha509 @Puja Jagani @barancev @jimevans @Todd Tarsi and anyone else who’s interested, come on down!

9:00 PM

Any agenda items?

Diego Molina 9:00 PM

I can paste the ongoing agenda and leave you to it :slightly_smiling_face:

Simon Stewart 9:00 PM

Yes please!

Diego Molina 9:01 PM

Pending work for the 4th Beta?

  • Server - Grid
  • Pipe VNC connectors through the WebSocket plumbing for live video
  • Unify new Session Queue
  • Stress test the new Grid on AWS or similar with >50 simultaneous tests
  • Check that the Redis/JDBC backed services actually function
  • Distributor follows spec when allocating new sessions
  • More than 1 IE session per Node? https://github.com/SeleniumHQ/selenium/issues/9388

Language bindings

  • “se:cdpVersion” is missing in C# and JS
  • Can all bindings do CDP over Grid?
  • What are the features present in Selenium 4?
  • Do all bindings implement them?
  • Selenium IDE
  • Who knows what the release process is?
  • What is needed?
  • Who can help reviewing pull requests?

9388 Grid 4 doesn’t allow more than 1 session for Internet Explorer

:boom: Regression Report

We used Selenium Grid 2 and 3 to run multiple IE sessions in parallel without issues for many years. But now Selenium 4 restrict the number of IE sessions to only 1 without any way to override the restriction.

Last working Selenium version

Worked up to version: 3.141.59

Stopped working in version: 4.0.0-alpha

To Reproduce

  1. Start the hub using java -jar selenium-server-4.0.0-beta-3.jar hub
  2. Start the IE node using java -Dwebdriver.ie.driver=IEDriverServer-3.150.1.exe -jar selenium-server-4.0.0-beta-3.jar node –max-sessions 7 –override-max-sessions true Expected behavior A grid node that allows up to 7 tests that use IE to run in parallel. Environment OS: Windows
    Browser: IE
    Bro… Show more Labels C-grid https://github.com/SeleniumHQ/selenium|SeleniumHQ/seleniumSeleniumHQ/selenium | Apr 17th | Added by GitHub

Simon Stewart 9:01 PM

Thank you!

9:01 PM

I’ll add: What do we want in RC1?

9:01 PM

Anyone want to add anything else?

Diego Molina 9:02 PM

Also

General project statistics

  • Previous meeting: 157 open issues, 25 open pull requests Currently: 161 open issues, 25 open pull requests

9:02 PM

(so, I cannot run the meeting, but I am around :slightly_smiling_face:)

Simon Stewart 9:02 PM

It’s much appreciated. Thank you, @diemol

9:03 PM

I’m guessing silence means that there’s nothing else to add?

In that case: Pending work for beta 4

Simon Stewart 9:04 PM

I saw that @Puja Jagani has got tracing working again, which I’d love to see in b4.

Puja Jagani

Will be landed tomorrow!

Simon Stewart

Woohoo!

Simon Stewart

Thank you :slightly_smiling_face:

Simon Stewart 9:04 PM

And @diemol posted a video of the Grid scaling up to 50 clients

9:04 PM

I’ve done some perf work to get better utilisation

9:05 PM

And we’ve unified the session queue too

9:05 PM

That is, I think Grid is good to go for b4 once the tracing work is landed

9:05 PM

Anyone (@harsha509 @AutomatedTester) know about se:cdpVersion in the JS bindings?

David Burns 9:07 PM

I’ve not done it

Simon Stewart 9:07 PM

(I see that @harsha509 is typing….)

Sri Harsha 9:07 PM

cdp version check is not implememted on js.

Simon Stewart 9:07 PM

OK. Do we need it for beta 4, or should we punt it to rc1?

David Burns 9:08 PM

We can punt it

Simon Stewart 9:08 PM

Great. Let’s punt it to rc 1

David Burns 9:08 PM

No one has noticed how it works and no bug reports so…

Simon Stewart 9:08 PM

What about CDP over the Grid?

If you’re using se:cdp for the websocket endpoint, it’ll work

9:09 PM

(@titusfortner and @p0deje I’m curious about the ruby bindings and CDP-over-Grid too)

David Burns 9:09 PM

That is there already

Titus Fortner 9:11 PM

yeah, for Remote, Ruby gets the version from se:cdpVersion

9:12 PM

We run the tests for both local and via the Grid, and everything is passing

Simon Stewart 9:12 PM

Do the Ruby bindings use se:cdpVersion too?

I guess you lean into the typing less than Java and .Net, so maybe it doesn’t matter so much

Titus Fortner 9:13 PM

https://github.com/SeleniumHQ/selenium/blob/411b883645023d1e1a629a3197d3552253b93f2f/rb/lib/selenium/webdriver/remote/driver.rb#L54 driver.rb

capabilities[‘se:cdpVersion’].split(’.’).first

https://github.com/SeleniumHQ/selenium|SeleniumHQ/seleniumSeleniumHQ/selenium | Added by GitHub

Simon Stewart 9:13 PM

Perfect :slightly_smiling_face:

9:14 PM

waits for @titusfortner to type

Titus Fortner 9:14 PM

no need, I’m not saying anything useful

9:14 PM

but Ruby & devtools things I think we’re good

Simon Stewart 9:15 PM

Great. Moving on, then!

9:15 PM

I get the feeling that if anyone had the time and energy, @jimevans would appreciate a hand with the .Net bindings

9:16 PM

I know that last status meeting, he mentioned that there were some features he wanted in there before beta4

David Burns 9:17 PM

@Puja Jagani has done some .Net stuff. If Jim tells us what needs doing we can help

Simon Stewart 9:18 PM

I think it’s probably CDP-over-Grid, and maybe the CDP version stuff

9:18 PM

But, obviously, @jimevans knows waaaay more than I do about that

David Burns 9:18 PM

I need to do the multiple options handling to capabilities work in the python code

9:19 PM

If I had deprecated some of the code in 3.14 it would be Waaaaaaay easier

Simon Stewart 9:20 PM

We can have a discussion about what you’re thinking of breaking later

9:20 PM

It may just be that we do the simple thing, though

As far as I’m concerned, then, the thing we’re waiting for is @jimevans to give us the green light for the .Net stuff being ready for beta4

Titus Fortner 9:21 PM

I did just notice that Ruby hasn’t implemented Full Page screenshot support for Firefox, yet; I’ll get that added today.

And on that vein, I need to create some examples of browser specific features being used with Remote drivers in each language, because I know not everything is working in every binding, yet

Simon Stewart 9:21 PM

What do other people think?

David Burns 9:21 PM

Nothing will break promise

Simon Stewart 9:21 PM

@titusfortner I think we can set “feature parity between bindings” as an rc1 goal

Titus Fortner 9:21 PM

yup, makes sense

9:22 PM

I"ll get the Firefox screenshot thing in before beta4

Simon Stewart 9:22 PM

As long as the broad features are there in beta4 (notably, the CDP-related infrastructure, if not the nicer APIs built on top)

Titus Fortner 9:22 PM

Very excited about how close we are :slightly_smiling_face:

Simon Stewart 9:22 PM

Which neatly brings us on to What do we want in RC1?

Titus Fortner 9:23 PM

ensure feature parity :slightly_smiling_face:

Simon Stewart 9:23 PM

  • Feature parity between languages
  • Updated CDP versions for current browsers
  • More Grid stress testing

Titus Fortner 9:23 PM

or at least document it

Simon Stewart 9:23 PM

Documentation :slightly_smiling_face:

Titus Fortner 9:23 PM

while we’re here, the JUnit 5 dev doesn’t have any ideas for how to fix the issue:

Comment on #2273 Parallelism value ignored for the fixed strategy

I’m all ears if anyone has a proposal how to resolve this. The only thing I’ve come up with would be to wrap the execution of each test in another, non-ForkJoinPool thread but that would double the number of required threads and have performance implications. https://github.com/junit-team/junit5|junit-team/junit5junit-team/junit5 | May 13th | Added by GitHub

9:24 PM

it’s definitely a JUnit thing, but it’s going to affect our users :disappointed: :disappointed:

Simon Stewart 9:24 PM

Why they don’t just maintain an AtomicInteger of the number of running threads is beyond me

Titus Fortner 9:25 PM

Can you suggest that?

9:25 PM

I am so far out of my depth with threading that I will get in the way more than help

Simon Stewart 9:25 PM

We can get this sorted :slightly_smiling_face:

Titus Fortner 9:26 PM

:thumbsup:

Simon Stewart 9:26 PM

Does anyone have anything else that they want to see in rc1?

9:26 PM

Or, to rephrase, if we ship rc1 and nothing major blows up, what would stop us making the release after that 4.0?

9:28 PM

(I’m going to take silence here to mean that everyone is really busy right now)

Titus Fortner 9:29 PM

Your list looks good to me…

Simon Stewart 9:30 PM

OK.

9:31 PM

So, let’s move on to Selenium IDE

I think that there’s a small core of us who could release the IDE

9:32 PM

But @corevo and DaveH would know the process best

9:33 PM

To recap:

  • Selenium IDE
  • Who knows what the release process is?
  • What is needed?
  • Who can help reviewing pull requests?

Todd Tarsi 9:33 PM

@simonstewart - I would love to help in any capacity that I can, including reviewing PRs.

Simon Stewart 9:34 PM

That’s great news :slightly_smiling_face:

9:34 PM

Thank you

9:34 PM

Again, it feels like we’re not going to make much progress today on this.

Titus Fortner 9:35 PM PM

I think we need to hear back from former owners to make progress on it

Simon Stewart 9:35 PM

Can I suggest that we set up a call or email chain with @corevo, DaveH, @harsha509 and whoever else is interested to move that forwards?

Titus Fortner 9:35 PM

can we reach out to them not-on-slack since they don’t seem to be paying attention here?

yes, that :slightly_smiling_face:

Simon Stewart 9:35 PM

nods

@harsha509, would you be okay arranging that?

If we can get you email addresses….

Sri Harsha 9:36 PM

I can take inputs from @corevo on how to release and document it.

9:37 PM

Sure @simonstewart

Simon Stewart 9:37 PM

Brilliant. Thank you. I’ll be happy to help move things along if I can

Sri Harsha 9:37 PM

:bow:

Simon Stewart 9:37 PM

@Todd Tarsi I bet it’d be interesting to hear how the electron work was going

Todd Tarsi 9:38 PM

@simonstewart - It will be better with a PR as a point of discussion, so I’ll put one out later tonight.

Simon Stewart 9:38 PM

Oh yeah. Definitely a PR discussion :slightly_smiling_face:

9:39 PM

Alright then, folks. I think we’ve romped through the agenda.

9:39 PM

Is there anything else people would like to talk about?

Titus Fortner 9:39 PM

What is the current status of BiDi?

Luis Correia 9:40 PM

Documentation :slightly_smiling_face:

Titus Fortner 9:40 PM

I think we closed the issue that was listing what we were going to implement, presumably because we’ve implemented the things we deemed essential

Simon Stewart 9:41 PM

Status of Bidi? The w3c spec, or the use cases we planned to support?

Titus Fortner 9:41 PM

the latter

and the former to the extent that it might be what is driving the latter?

Simon Stewart 9:41 PM

@Luis Correia Acknowledged. We’ll talk about docs after the bidi stuff

The w3c spec won’t be finished before we ship 4.0, so let’s set that aside

Titus Fortner 9:42 PM

oh yes, I waited until after we were done talking about betas and RCs to bring this up :slightly_smiling_face:

this is future roadmap things

Simon Stewart 9:42 PM

So, the use cases from the issue were:

  • Listen for DOM events
  • Log what’s going on in the browser including console and JS errors
  • Fail fast on any JS error
  • Intercept network requests allowing to mock backend requests
  • Record traffic (Alex: Allow replaying it?)
  • Authenticate on secure pages
  • Bootstrap scripts (for example, execute JavaScript snippet on every page load)

9:43 PM

Recording traffic can be done by the same code that does network interception

I think bootstrap scripts are probably the most poorly supported thing right now

9:44 PM

Technically, Java has code for it, but I have zero confidence it’s robust. Or, indeed, that I actually landed it

The w3c spec started with a discussion of use cases too, and there’s a lot of overlap (surprise!)

9:45 PM

I’d love to get script pinning using CDP in place. That’ll exercise bootstrap scripts sufficiently

Titus Fortner 9:46 PM

So maybe I need to better understand how the spec and selenium code are supporting each other. Do we need to make sure the features we are adding are documented in the spec?

(i.e. is one driving the other, or is this like before where geckodriver & w3c drove each other)

Simon Stewart 9:47 PM

The spec is currently putting in place a lot of the groundwork to start doing useful things, so it’s not covering the use cases yet

9:48 PM

I suspect that Selenium 4 utilisation will help steer the spec as we find out the subset of the CDP that’s actually useful for testing and automation

Titus Fortner 9:48 PM

perfect, thanks

Simon Stewart 9:48 PM

It’s something of a chicken-and-egg problem right now.

9:49 PM

Once we ship 4, I’m planning to switch my focus to the spec

Titus Fortner 9:49 PM

always is with specs, right? :slightly_smiling_face:

Simon Stewart 9:49 PM

Always :slightly_smiling_face:

We have 10 minutes left! Shall we move on to Documentation?

Titus Fortner 9:49 PM

@diemol are we moving / have we moved to a different theme?

for docs

Simon Stewart 9:49 PM

@Luis Correia could you please expand on what you meant?

Luis Correia 9:50 PM

about single port grid or documentation?

Simon Stewart 9:51 PM

Documentation, please

Luis Correia 9:52 PM

ok, it is my understanding that current docs are too surgical, explaining one thing but maybe not with full context Specifically in the grid 4 docs

Simon Stewart 9:52 PM

How would you like that to change?

Luis Correia 9:53 PM

in the website there isn’t a section with all available options and switches, one has to delve into code

9:53 PM

note: it’s not a blocker for release but rather a nice to have feature

9:55 PM

this is a good starting link

https://www.selenium.dev/documentation/en/grid/grid_4/

selenium.dev

Grid 4 :: Documentation for Selenium Documentation for Selenium

Simon Stewart 9:55 PM

OK, so a better description than you get from selenium -h?

Titus Fortner 9:55 PM

https://www.selenium.dev/documentation/en/grid/grid_4/configuring_components/config_help/

selenium.dev

Config help :: Documentation for Selenium

Documentation for Selenium

Luis Correia 9:55 PM

I would be happy with that on a webpage

Simon Stewart 9:56 PM

OK. Would you please leave a comment on https://github.com/SeleniumHQ/selenium/issues/8165?

8165 Update user docs with new Selenium 4 features :rocket: Feature Proposal Selenium 4 brings a set of all-new features and https://www.selenium.dev/documentation/en/ needs to be updated to contain the related docs for them. Motivation

It’d be nice to have the following new features covered in the docs: • Relative locators • CDP integration • New Grid 4.0 Example … Labels C-docs, Selenium-4-Beta Comments 2 https://github.com/SeleniumHQ/selenium|SeleniumHQ/seleniumSeleniumHQ/selenium | Apr 7th, 2020 | Added by GitHub

Titus Fortner 9:56 PM

looks like the page I linked there shows the commands but not the output?

Luis Correia 9:56 PM

@titusfortner or even why, that’s proper context

9:57 PM

i will @simonstewart

Titus Fortner 9:57 PM

providing context for it would definitely be useful

Simon Stewart 9:57 PM

Much appreciated. That’s the tracking issue for improving the docs, so adding comments there will be helpful

Titus Fortner 9:58 PM

Or you can PR the changes you think would provide the context; docs are all in a public repo.

I’m struggling a bit with Sauce documentation right now. I’m good at making sure the info is “correct,” but finding I’m not so great on explaining why it matters to people, and that part is important

Simon Stewart 9:59 PM

@titusfortner I guess you’ve seen https://developers.google.com/tech-writing?

Titus Fortner 9:59 PM

It’s like I have “presentation” mode and “documentation” mode and I can’t get them to work together :smile:

Simon Stewart 9:59 PM

Ah yeah. It’s hard to get the narrative right

Titus Fortner 10:00 PM

well, it also helps to have people at Sauce whose actual career is organizing info so people can understand it

10:00

I hadn’t seen the tech-writing page, that looks interesting

Simon Stewart 10:01 PM

Shall we wrap up? I think we covered most of the things we needed to

10:02 PM

The major decision was to wait for @jimevans to give us the green light for shipping beta 4.

I’m totally fine waiting as long as necessary for that, but I also heard @AutomatedTester suggest that maybe @Puja Jagani could help with that

Titus Fortner 10:06 PM

sounds great, thanks @simonstewart!