如何在Ruby编写的Webdriver测试中执行JavaScript?

时间:2011-09-27 07:25:07

标签: javascript ruby selenium webdriver

是否有一个已知的解决方案在Webdriver,Ruby绑定中执行Eval(Javascript执行)?

相当于Java中的以下示例。

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

2 个答案:

答案 0 :(得分:17)

等效的Ruby将是:

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

(要获取标记名称,您也可以调用element.tag_name)

答案 1 :(得分:2)

感谢您发布此答案。这对我帮助很大。我一整天都在谷歌上搜索如何在Ruby中执行JavaScript代码。

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

通过这样做,我能够在点击事件之前滚动到特定元素。这可能会对其他人有所帮助。

我不得不使用JavaScript替代方案,因为出于某种原因,这不是:为我工作element.location_once_scrolled_into_view

感谢。