2011-09-27 6 views
9

Czy jest znane rozwiązanie do wykonywania Eval (wykonywanie Javascript) w Webdriver, wiązania Ruby?Jak wykonać JavaScript w teście napisanym w języku Ruby?

Odpowiednik następującego przykładu w języku Java.

WebElement element = driver.findElement(By.id("foo")); 
String name = (String) ((JavascriptExecutor) driver).executeScript(
"return arguments[0].tagName" , element) 

Odpowiedz

15

Równowartość Ruby byłoby:

name = driver.execute_script("return arguments[0].tagName" , element) 

(aby uzyskać nazwę znacznika można też po prostu zadzwonić element.tag_name)

+0

Dzięki! Dokładnie to, czego szukałem. – Yulia

1

Dziękuję za komentarz to odpowiedź. Bardzo mi to pomogło. Przez cały dzień szukałem informacji, jak wykonać kod JavaScript w Ruby.

@driver.execute_script("arguments[0].scrollIntoView(true);", element)

Dzięki temu udało mi się przejść do konkretnego elementu przed kliknięciem imprezy. To może trochę pomóc innym.

musiałem użyć alternatywy JavaScript ponieważ z jakiegoś powodu nie było: działa na mnie element.location_once_scrolled_into_view

Dzięki.

+0

Dokładnie to, co próbowałem zrobić, dzięki! Rozszerzyłem mój 'Selenium :: WebDriver :: Element', aby uwzględnić to w elementach, ale nie mogłem znaleźć sposobu na uzyskanie dostępu do sterownika bez podania go jako wymaganego parametru. –

Powiązane problemy