2015-08-17 13 views

Odpowiedz

12

myWebElement.click();

Czynności (sterownik) .click (myWebElement) .build(). Wykonaj();

Obie metody kliknięcie i klasa działania należą do klasy webdriver.Action służy do emulacji skomplikowanych gestów użytkownika (w tym działania takie jak przeciąganie i upuszczanie lub kliknięcie wiele elementów z kluczem sterowania itp) .Kliknij metodzie wykorzystywany jest do klikania odpowiedni webElement (przyciski, łącza itp.). Selene Webdriver wykorzystuje natywną obsługę przeglądarki do mapowania elementu DOM na obiekt WebElement przy użyciu lokalizatorów takich jak id/xpath itp.

JavaScriptExecutor jest interfejsem zapewniającym mechanizm do uruchamiania Javascript przez sterownik selenu. Dostarcza "executescript" & metod "executeAsyncScript", aby uruchomić zewnętrzny JavaScript w kontekście aktualnie wybranej klatki lub okna. W przypadku executescript zwróci element DOM, który jest następnie konwertowany na WebElement

Symulacja kliknięcia przez WebDriver w przeglądarce jest podobny do tego, co rzeczywiste użytkownik zrobić w stosunku do jednego wywoływana przy użyciu javascript

Przykładowy scenariusz:

<html> 
<body> 
<button type = "button" id ="test" style = "display:none"> clickme </button> 
</body> 
</html> 

po kliknięciu na przycisk „kliknij mnie” przycisk za pomocą funkcji kliknięcia w internecie Kierowca dostaniesz org.openqa.selenium.ElementNotVisibleException (pierwiastek nie widoczny wyjątek), który jest poprawny jako element jest obecny w DOM, ale nie jest wyświetlany użytkownikowi jak styl css display:none jest ustawiony

((JavascriptExecutor)driver).executeScript("$('#test').click();");//or 
((JavascriptExecutor)driver).executeScript("document.getElementById('test').click();"); 

Jeśli używasz powyższy skrypt/jquery, aby kliknąć element, a następnie kliknie przycisk niezależnie od tego, czy przycisk był widoczny, czy nie, co jest nie tak, ponieważ użytkownik końcowy nie będzie w stanie zobaczyć/kliknąć przycisku, ale twój skrypt przejdzie.Więc morał staram się używać funkcji webdriver wszędzie, gdzie to możliwe, zamiast używać javascript

Mam nadzieję, że to ci pomoże.Wzrostowo wróć, jeśli masz jakiekolwiek pytania

+1

Dziękuję Vicky za wyjaśnienie. –

+0

Dobra odpowiedź Vicky! –