【问题标题】:How to execute JavaScript in Ruby written Webdriver test?如何在 Ruby 编写的 Webdriver 测试中执行 JavaScript?
【发布时间】:2011-11-25 19:19:34
【问题描述】:

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

相当于下面的 Java 示例。

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

【问题讨论】:

    标签: javascript ruby selenium webdriver


    【解决方案1】:

    等效的 Ruby 将是:

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

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

    【讨论】:

    • 谢谢!正是我想要的。
    【解决方案2】:

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

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

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

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

    谢谢。

    【讨论】:

    • 正是我想要做的,谢谢!我已经扩展了我的 Selenium::WebDriver::Element 以将其包含在元素上,但我找不到一种方法来访问驱动程序而不将其作为必需参数传入。
    猜你喜欢
    • 1970-01-01
    • 2015-11-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    相关资源
    最近更新 更多