As an experiment I wanted to test how to use Ruby, Selenium and the web-driver to access a complex web site. For this test I thought I could take flights.google.com and see how to find something on the page having taken a quick look at the dynamic nature of what visually looks simple but is a complex generated view.
Seems easy enough. So for example the site is flights.google.com and entering two destination points say SFO to LAX the URL would be https://www.google.com/travel/flights/search?tfs=CBwQAhogEgoyMDIzLTA2LTE0KABqBwgBEgNTRk9yBwgBEgNMQVgaIBIKMjAyMy0wNi0xOCgAagcIARIDTEFYcgcIARIDU0ZPQAFIAXABggELCP___________wGYAQE
Now when the page is generated you get some nice displayed lists of the flights and if I want to find a result it s not a readable named set of items.
<div class="yR1fYc" jsaction="click:O1htCb;gP4E0b:O1htCb;DIjhEc:YmNhJf" jsname="BXUrOb">
<div class="mxvQLc ceis6c uj4xv uVdL1c A8qKrc" jsname="HSrbLb">…</div>
</div>
Typically with Webdriver and Selenium I would use
require selenium-webdriver
require capybara
driver = Selenium::WebDriver.for :chrome
driver.get https://www.google.com/flights/
and then use the find element approach with some named element
flights = driver.find_elements_by_class_name( flight )
In this case its a more cryptic name so not sure how to tackle the problem if I m assuming the names of classes may be dynamically generated.
Any suggestions or approaches ?