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

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

相当于Java中的以下示例。

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

等价的Ruby将是:

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

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

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

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

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

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

谢谢。