2011-09-27 63 views
9

是否有已知的解決方案在Webdriver,Ruby綁定中執行Eval(Javascript執行)?如何在Ruby編寫的Webdriver測試中執行JavaScript?

Java中以下示例的等效項。

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

回答

15

等效紅寶石是:

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

(讓你也可以只調用element.tag_name標籤名稱)

+0

謝謝!正是我在找什麼。 – Yulia

1

謝謝你張貼這個答案。這對我幫助很大。我整天用Google搜索瞭解如何在Ruby中執行JavaScript代碼。

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

通過這樣做,我能夠滾動到單擊事件之前的特定元素。這可能會幫助其他人。

我不得不使用JavaScript的選擇,因爲某種原因,這不是:我element.location_once_scrolled_into_view

謝謝合作。

+0

正是我想要做的,謝謝! 我已經擴展了我的'Selenium :: WebDriver :: Element'來包含這個元素,但是我找不到一個方法來訪問驅動程序而不把它作爲必需的參數傳入。 –

相關問題