2016-04-05 1 views
1

Sagen wir, ich habe ein Modal.Watir Webdriver: Testen, dass das Klicken außerhalb eines Modals es nicht schließt

@my_modal = @brower.div(id: 'TheModal')

Lassen Sie uns sagen, dass ich einen Test haben, die modal (Gurke in diesem Beispiel) bringt

Given I ... 
When I ... 
Then "My Modal" is visible 
When I click outside the modal 
Then "My Modal" is visible 

nun den Schritt zu definieren, außerhalb des modalen klicken:

When /^I click outside the modal$/ do 
    # what do I put here? 
end 

Irgendwelche Ideen?

Ich habe gerade versucht @browser.element(xpath: '//html').click basierend auf How to simulate mouse click on blank area in website by Selenium IDE?. Ich habe den Fehler Selenium::WebDriver::Error::UnknownError: unknown error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.

Antwort

2

Watir können Sie nur klicken Sie auf Elemente, die sichtbar sind. Bei den meisten modalen Implementierungen werden nur Elemente innerhalb des Modales als sichtbar betrachtet.

Versuchen: @browser.element.wd.click

Es könnte dazu beitragen, die html zu teilen, wenn das nicht funktioniert.

2

Ich endete mit dieser @browser.driver.action.move_to(@browser.div(id: 'js-overlay').wd, 0, 0).click.perform.

Im Hintergrund war ein div, der alles abblendete, div#js-overlay. normales Klicken mit `@ browser.div (id: 'js-overlay') funktionierte nicht, b/c es klickte genau in der Mitte, wo das Modal war, deshalb gibt es das zusätzliche Geschäft, wenn man oben links klickt von diesem bestimmten Div (Danke an Justin Ko!).

+0

Kudos für das Teilen der Lösung, die Sie entwickelt haben, bezweifle ich, dass Sie die einzige Person sein werden, die solche Dinge tun muss (oder das Gegenteil, das Klicken außerhalb des Modals schließt es, ein weiteres gängiges Paradigma für Beratungsmodelle) –

Verwandte Themen