在 Cucumber Selenium 中使用 Ruby 时 JavaScript 出错

Error in JavaScript while using in Cucumber Selenium with Ruby

我正在尝试 select 使用 Selenium ruby 中的以下代码和黄瓜 framework.I 中的下拉列表 Javascript 到 select 的值.

When(/^user selects year as (\d+)$/) do |arg1|

  $driver.execute_script('document.getElementsByName("param[start_year]")[0].value=arg1;')

end

但是我收到类似这样的错误this.Please帮我解决

arg1 is not defined (Selenium::WebDriver::Error::JavascriptError)

您正在执行的 JavaScript 位具有硬编码的变量 arg1。脚本会将其视为 JavaScript 变量 - 因为没有定义此类变量在 JavaScript space 中,您收到错误。

根据其余代码,我假设您实际上想将 Ruby space 中定义的 arg1 变量的值传递给 JavaScript代码。我建议你试试这个:

When(/^user selects year as (\d+)$/) do |arg1|
  $driver.execute_script(%Q<document.getElementsByName("param[start_year]")[0].value="#{arg1}";>)
end

请注意,我使用了 %Q text delimiter 以便 #{} 文本插入可以与包含双引号的文本结合使用 (")