-
hazmeister-sl joined the channel
-
hazmeister-sl
depends if I wrote it
-
usually I CAN FORGIVE YSELF
-
whoops, caps
-
WhereIsMySpoon_
xD
-
hazmeister-sl
don’t drink and chat folks
-
kpattich__ joined the channel
-
krishnan-maha-sl joined the channel
-
krishnan-maha-sl
@simonstewart thanks for helping with merging that PR.
-
Rapture joined the channel
-
hazmeister-sl lol. Precious lessons :thumbsup:
-
simonstewart
NP. It pointed me to some of the grid code
-
And now my day has derailed a little
-
krishnan-maha-sl
@simonstewart I sincerely from the bottom of my heart hope that I don't cause you to shed tears when looking at my PRs :)
-
kpattich_ has quit
-
simonstewart
Your PR is fine :)
-
kpatticha joined the channel
-
krishnan-maha-sl
I will go home now and work on the next PR. Already found my next GitHub issue to work on.
-
kpattich__ has quit
-
Phew! That's a relief @simonstewart
-
Qulu has quit
-
simonstewart
I'm normally pretty good at letting people know when I think we can improve something
-
spathare has quit
-
My only hope is that I do that in a gentle way
-
Selenium-Github
[13selenium] 15shs96c pushed 1 new commit to 06master: 02https://git.io/fNaL9
-
13selenium/06master 149669e80 15Simon Stewart: Move utility method into utility class
-
simonstewart
Alright. When the java tests go as green as we expect them to, is there any reason not to ship 3.14?
-
barancev
go on!
-
simonstewart
AutomatedTester: ship your python diff and we'll move from there
-
corevo_ joined the channel
-
Rubber duck time!
-
So, in my head the grid is composed of a number of moving pieces:
-
(Starting from the backend)
-
corevo has quit
-
1/ end nodes (probably chromedriver, geckodriver, or similar)
-
2/ possibly a wrapper for that (eg. docker, saucelabs, browser stack)
-
(It's possible that Selenium As A Service should treated as "1"
-
)
-
3/ "Something" to route requests to the right destination
-
4/ a "distributor" which is aware of all nodes in the system, and is responsible for assigning sessions to nodes
-
So, "1" equates to a "session", "2" to a "host", "3" to the router, "4" is the distributor
-
We might want to put proxies in there to handle things like protocol conversion
-
Or we might want that to a responsibility of the session
-
In a k8s setup, you'd probably have a load balancer somewhere in the mix
-
(which is why I need to update the webdriver spec to make session cookies A Thing)
-
chele has quit
-
So you'd end up fronting all this with haproxy or something similar
-
And have leadership elections for the distributor
-
With a permanent datastore for the session routing
-
@tomer, yt?
-
tomer-sl joined the channel
-
tomer-sl
I am
-
Whats up?
-
simonstewart
Two things: sizzle, and an IDE Alpha blog post
-
tomer-sl
Alright
-
Seems like a sizzling topic
-
simonstewart
Ha! :)
-
So, would you like to nominate someone to write a blog post announcing the alphas of IDE?
-
I guess it'd need "where to get it", "how to use it", "what we want before we hit beta"
-
tomer-sl
I can do that with @tourdedave
-
simonstewart
If there's nothing to do before "beta" (I think there is ;) ), we can go straight to announcing the beta
-
Lovely.
-
Ping me when you've something written and I'll make sure you have the keys to post to the blog
-
tourdedave may already have them....
-
tomer-sl
Depends on what we call beta?
-
tourdedave
I should already
-
simonstewart
"beta" == "all the major features, including export, are in place, but we don't know how well they work"
-
"alpha" == "it may or may not work, and we know there are gaps"
-
tomer-sl
gotya
-
simonstewart
"release" == "any bugs we document are features"
-
:)
-
tourdedave
how crucial is export?
-
simonstewart
It seems to be the thing that most people are wanting
-
tomer-sl
That depends on the runner’s reception
-
If that could even give an answer to 50% on day 1
-
And we can make it more flexible as we go to cover almost all of the cases
-
simonstewart
Even if the runner was super, you'd still want to export to (say) C# or Java
-
tomer-sl
We can reevaluate
-
tourdedave
Well, some might still want to
-
tomer-sl
Indeed, but there are more pressing features
-
simonstewart
Because IDE is a step into the world of Selenium.
-
tomer-sl: that's why we announce an alpha
-
tourdedave
Right, but if we ultimately enable people to do everything in the IDE that you can do in code, then there's no real need to export
-
simonstewart
Uhhh...
-
I'm not sure I agree there.
-
diemol joined the channel
-
WhereIsMySpoon_
i would disagree at 'enable people to do everything in the ide you can do in code'
-
thats just not going to be possible without allowing people to write code for the ide
-
simonstewart
One of the use cases for IDE is "I need to throw a quick example together". That doesn't imply people will actually be running the tests in IDE
-
NOTICE: SeleniumHQ/selenium#4048 (master - f3197b1 : Krishnan Mahadevan): The build is still failing.
-
NOTICE: Change view : https://github.com/SeleniumHQ/selenium/compare/9190cd5c8c89...f3197b14bd78
-
NOTICE: Build details : https://travis-ci.org/SeleniumHQ/selenium/builds/409856933
-
I'm not saying "IDE should be rubbish", but I am saying that it's often an "on ramp" to the other bits of selenium
-
tomer-sl
simonstewart: I get what you say, I’m not inclined to rewriting each feature 3-4 times atm
-
simonstewart
Hence "alpha"
-
tomer-sl
Wanna talk about sizzle?
-
simonstewart
Sure.
-
tomer-sl
So from a quick check I’m the culprit
-
simonstewart
I think Jason Huggins is, to be fair
-
tomer-sl
-
It was disabled I reenabled it a while ago
-
simonstewart
So, stepping back
-
Sizzle was how RC used to do element finding if you asked for "css" locators
-
tomer-sl
It was disabled at some point
-
simonstewart
So any test that uses the RC APIs and css actually depends on sizzle
-
tomer-sl
They just failed then? until I reenabled it?
-
simonstewart
I need to go read the code for the webdriver-backed selenium
-
tomer-sl
I want to flesh out the locators in the IDE
-
simonstewart
But, yeah, it should be there for backwards compatibility
-
The original IDE code was a hack on the original Selenium Core code
-
tomer-sl
css and link are in my sights
-
simonstewart
Which is how we ended up with sizzle where we are now
-
tomer-sl: you should be able to use the atoms for locating elements
-
tomer-sl
I do
-
I don’t need sizzle
-
simonstewart
Right
-
tomer-sl
Since I incorporated that
-
But I need other things from there
-
simonstewart
So it's cool to just cut that entire chunk out for IDE TNG
-
Which other things?
-
tomer-sl
getText and the likes
-
simonstewart
getText is also an atom
-
tomer-sl
I’ll have to go over it
-
iirc I’m using over 17 utils functions all over the place
-
simonstewart
bot.dom.getVisibleText
-
RC's getText is hopelessly broken
-
tomer-sl
Is it documented somewhere
-
simonstewart
bot.dom.getVisibleText?
-
tomer-sl
I’ll have to check if I can port entirely away from it
-
And then I can just cut it from the build process
-
GodFather has quit
-
simonstewart
What are you using in the htmlutils file?
-
tomer-sl
Easy to ask, it puts everything on window
-
I’ll have to grep
-
simonstewart
Thanks
-
tomer-sl
one sec
-
const eval_css = window.global.eval_css; const getTimeoutTime = window.global.getTimeoutTime; const SeleniumError = window.global.SeleniumError; const normalizeSpaces = window.global.normalizeSpaces; const getText = window.global.getText; const createEventObject = window.global.createEventObject; const triggerKeyEvent = window.global.triggerKeyEvent; const fnBind = window.global.fnBind; const browserVersion = window.global.browse
-
window.global.getInputValue; const extractExceptionMessage = window.global.extractExceptionMessage; const PatternMatcher = window.global.PatternMatcher; const parse_kwargs = window.global.parse_kwargs; const getTagName = window.global.getTagName;
-
simonstewart
It's likely the atoms or modern JS already have replacements for almost everything
-
tomer-sl
That’s a short list of things
-
simonstewart
OK. So "getText" we've covered already
-
bot.actions can do key events
-
tomer-sl
const objectExtend = window.global.objectExtend; const SeleniumError = window.global.SeleniumError; const createEventObject = window.global.createEventObject; const absolutify = window.global.absolutify; const addLoadListener = window.global.addLoadListener; const highlight = window.global.highlight; const _parse_locator = window.global.parse_locator; const eval_xpath = window.global.eval_xpath; const eval_css = window.global.eva
-
simonstewart
getting a tag name is trivial
-
tomer-sl
window.global.PatternMatcher; const getText = window.global.getText; const getTagName = window.global.getTagName; const elementFindFirstMatchingChild = window.global.elementFindFirstMatchingChild; const eval_locator = window.global.eval_locator; const is_ancestor = window.global.is_ancestor; const canonicalize = window.global.canonicalize; const parseUrl = window.global.parseUrl; const reassembleLocation = window.global.reassembl
-
window.global.serializeObject;
-
That’s everything
-
simonstewart
serialize sounds like JSON.stringify to me
-
IDE had some odd behaviour about looking through nested frames for elements which was always "fun"
-
And damnably confusing